EnumChildWindows в проекте MFC.
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



EnumChildWindows в проекте MFC. Expand / Collapse
Автор
Сообщение
22.05.2007 13:00
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme 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?

Спасибо.

Сообщ. #913529
24.05.2007 16:40
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Объяви ее как private static внутри класса где нужно перебирать окна.
Сообщ. #913622
25.05.2007 12:22
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Спасибо, bazile!
Я вобщем нашел другое решение, без использования функции EnumChildWindows.
Но Вашим советом попробую воспользоваться обязательно.
Сообщ. #913635
25.05.2007 12:51
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Приведи свое решение, оно может и другим людям может пригодиться.
Сообщ. #913637
25.05.2007 17:51
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme 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;
};

Вот и все.
Может и не сильно красиво, зато просто и работает :)).

Сообщ. #913648
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 8:05