Участник
|
К сожалению в AOT используется не стандартный виндовый контрол TREEVIEW, а чьй-то сторонний под название PaneWindowCl, так что управлять событиями не получится (может у кого-либо завалялось описание этого конторола). Остается лишь использование клавиатурных комбинаций.
PHP код:
#winapi
#define.VK_DOWN(0x28)
#define.VK_RIGHT(0x27)
static void Job1(Args _args)
{
TreeNode treeNode;
int wndHandle;
str name;
;
treeNode = infolog.rootNode();
wndHandle = treeNode.AOTnewWindow();
if (treeNode && wndHandle)
{
wndHandle = winapi::getWindow(wndHandle, #GW_CHILD);
while (wndHandle)
{
name = winapi::getWindowText(wndHandle);
if (name == "TreePane")
{
winapi::sendMessageEx(wndHandle, #WM_KEYDOWN, #VK_DOWN, 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("f", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("o", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("r", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("m", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("s", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_KEYDOWN, #VK_RIGHT, 0);
winapi::sendMessageEx(wndHandle, #WM_KEYDOWN, #VK_DOWN, 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("s", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("a", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("l", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("e", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("s", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("d", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("e", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("l", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("e", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("t", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("e", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("o", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("r", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("d", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("e", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num("r", 1), 0);
winapi::sendMessageEx(wndHandle, #WM_KEYDOWN, #VK_RIGHT, 0);
break;
}
wndHandle = winapi::getWindow(wndHandle, #GW_HWNDNEXT);
}
}
}
|