Показать сообщение отдельно
Старый 29.08.2005, 23:18   #3  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
К сожалению в 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);
        
}
    }

За это сообщение автора поблагодарили: Logger (15).