|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
Необходимо обратиться к каждому ChildWindows окна. Как получить список ChildWindows имея HWND окна в проектe MFC?При использовании EnumChildWindows нужно указать BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam); Где и как правильно описать эту функцию в проекте MFC? Спасибо.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Объяви ее как private static внутри класса где нужно перебирать окна.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
Спасибо, bazile! Я вобщем нашел другое решение, без использования функции EnumChildWindows. Но Вашим советом попробую воспользоваться обязательно.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Приведи свое решение, оно может и другим людям может пригодиться.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
mainWnd - объект класса CWnd, в котором нужно получить все childWindows. CWnd *m_wnd; CString m_str;
//--- Получаем первое child Window ---------- m_wnd = mainWnd->GetWindow( GW_CHILD ); m_wnd -> GetWindowText( m_str ); if( //проверяем какието условия// ) { //Что-то делаем в случае истины. };
//--- Делаем цикл по оставшимся child Windows 1 меньше чем их кол-во for( int j = 1; j < mainWnd->GetWindowedChildCount( ); j++ ) { m_wnd = m_wnd ->GetWindow( GW_HWNDNEXT ); if ( //Что-то делаем и если нашли что хотели то ) break; };
Вот и все. Может и не сильно красиво, зато просто и работает :)).
|
|
|
|