Я тоже пробовал импортировать библиотеку контролов в IDE, добавлять TreeView в свой графический элемент, заполнять у него коллекцию Items и вставлять его в InTouch. во только он не сохраняет свою коллекцию и в окне Интача айтемы не появляются.
Получилось сделать вот как (правда он не AciveX
):
1. создал свой userControl в VisualStudio (пользовался C#, так как думал чтобы по-быстрее проверить, можно в принципе и на С++)
2. кинул на холст TreeView, добавил ему в коллекцию несколько айтемов, например :
а. Окно1
б. Окно2
в. Окно3
Свойство Name у этих айтемов дал осмысленные (Window1, Window2, Window3)
4. Добавил public событие и делегат этого события:
- Код: Выделить всё
public delegate void TreeNodeClickHandler(object sender, TreeNodeMouseClickEventArgs e);
public event TreeNodeClickHandler TreeNodeClick;
5. В TreeView (который на форме) для события NodeMouseClick вызываю объявленное public событие:
- Код: Выделить всё
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
Console.Beep();
//Вызываем public событие если оно не пустое
if (TreeNodeClick != null)
{
TreeNodeClick.Invoke(this, e);
}
}
Ну и все, в принципе, компилите, получившуюся dll импортируете в IDE, добавляете в свой символ этот userControl, два раза по нему кликаете и ищете в списке событий своё public событие (TreeNodeClick) и можно получить доступ к тому Item, по которому произошел "клик" мышой (через TreeNodeMouseClickEventArgs e). Например:
- Код: Выделить всё
DIM NodeName AS Message;
NodeName = e.Node.Name;
IF NodeName == "Window1" THEN
ShowWindowName= "Главный экран";
ENDIF;
IF NodeName == "Window2" THEN
ShowWindowName= "Таблица";
ENDIF;
ShowWindowTrigger = 1;
ShowWindowName и ShowWindowTrigger - это CustomProperties String и Boolean соответственно, привязаны к тегам Интача (InTouch:ShowWindowName и InTouch:ShowWindowTrigger). На ShowWindowTrigger повешен Condition скрипт OnTrue:
- Код: Выделить всё
Show ShowWindowName;
ShowWindowTrigger = 0;
В результате по клику мышкой на Item c именем Окно1 (Name = Window1) откроется окно InTouch "Главный экран".