Как достать второе окно
Добавлено: 17 авг 2005, 09:42
Пытаюсь программно работать с контролами окошек. С первым всё получилось, а второе, которое выскакивает как попап, всё никак не могу достать. В чем ошибки?
Кроме того, проблема и с комбо-боксом. Какой-то он твердолобый и не хочет меняться программно чего-то... :roll: Да и вообще, как в такой ситуации будет правильно работать с изменением параметров комбобокса?..
Код: Выделить всё
if(m_bLingvo6)
{
STARTUPINFO si={0};
si.cb = sizeof( si );
si.wShowWindow = SW_NORMAL;
PROCESS_INFORMATION pi = {0};
CreateProcess (NULL, "R\\abbyy67\\dslcomp.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi );
WaitForInputIdle( pi.hProcess, INFINITE );//SingleObject
HWND wnd = FindWindow ("#32770", "DSL Compiler");
SendDlgItemMessage (wnd, 1056, BM_SETCHECK, BST_UNCHECKED, 0);
SendDlgItemMessage (wnd, 1057, BM_SETCHECK, BST_CHECKED, 0);
SendDlgItemMessage (wnd, 1004, BM_SETCHECK, BST_UNCHECKED, 0);
SendDlgItemMessage (wnd, 1006, WM_SETTEXT, 0, (LPARAM)"RusSyn.dsl");
SendDlgItemMessage (wnd, 1040, BM_CLICK, 0, 0);
HWND wnd2 = FindWindowEx(wnd, FindWindow ("#32770", "Dictionary Header Editor"), NULL, "Dictionary Header Editor");
//SendDlgItemMessage (wnd2, 1048, IDC_COMBO, CB_ADDSTRING, (LPARAM)"Русский");
SendDlgItemMessage (wnd2, 1047, WM_SETTEXT, 0, (LPARAM)"RusSyn");
SendDlgItemMessage (wnd2, 1059, WM_SETTEXT, 0, (LPARAM)"Системный(*.lsd)");
SendDlgItemMessage (wnd2, 1, BM_CLICK, 0, 0);
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}