GetFirstChild в win32? - PullRequest
       10

GetFirstChild в win32?

2 голосов
/ 14 мая 2010

Я использую EnumChildWindows, чтобы получить все дочерние окна из главного окна HWND, но я хотел бы получить только первый дочерний элемент данного окна HWND.

BOOL CALLBACK EnumChildProc ( HWND hwndChild, LPARAM lParam)
{
  // logic to call only once 
}

Это правильно? или любой другой простой способ?

~ UK

Ответы [ 3 ]

3 голосов
/ 14 мая 2010
BOOL CALLBACK EnumChildProc ( HWND hwndChild, LPARAM lParam)
{
  // process first child window
  return FALSE;
}

В качестве альтернативы HWND top_child = GetWindow(thisWindow, GW_CHILD);

2 голосов
/ 14 мая 2010

GetWindow (..., GW_CHILD) откроет вам окно в верхней части z-порядка, которое, как я полагаю, соответствует вашему 100 * *

2 голосов
/ 14 мая 2010

Sure:

BOOL CALLBACK EnumChildProc ( HWND hwndChild, LPARAM lParam)
{
    /* do what you want with the first HWND */

    return FALSE; // stops enumeration.
}

См. MSDN для получения полной информации, но соответствующая строка такова:

Возвращаемое значение

BOOL

Чтобы продолжить перечисление, необходимо выполнить обратный вызов функция должна вернуть TRUE ; прекратить перечисление должно возвращать FALSE .

...