GetFirstChild в win32?
Я использую EnumChildWindows, чтобы получить все дочерние окна из главного окна HWND, но я хотел бы получить только первый дочерний элемент данного окна HWND.
BOOL CALLBACK EnumChildProc ( HWND hwndChild, LPARAM lParam)
{
// logic to call only once
}
Это правильно? или любой другой простой способ?
~ UK
3 ответа
Решение
BOOL CALLBACK EnumChildProc ( HWND hwndChild, LPARAM lParam)
{
// process first child window
return FALSE;
}
С другой стороны, HWND top_child = GetWindow(thisWindow, GW_CHILD);
Конечно:
BOOL CALLBACK EnumChildProc ( HWND hwndChild, LPARAM lParam)
{
/* do what you want with the first HWND */
return FALSE; // stops enumeration.
}
См. MSDN для полной информации, но соответствующая строка такова:
Возвращаемое значение
BOOL
Чтобы продолжить перечисление, функция обратного вызова должна вернуть TRUE; чтобы остановить перечисление, он должен вернуть FALSE.
GetWindow(..., GW_CHILD) даст вам окно в верхней части z-порядка, которое, как я полагаю, является тем, что вы ищете