win32中的GetFirstChild是什么?

3

我使用 EnumChildWindows 函数来获取主 HWND 窗口的所有子窗口,但我只想获取给定 HWND 窗口的第一个子窗口。

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

这是否正确?还有其他简单的方法吗?

~英国


一次性得到四个答案,而且全部都正确,我想... - egrunin
3个回答

5
BOOL CALLBACK EnumChildProc ( HWND hwndChild, LPARAM lParam)
{
  // process first child window
  return FALSE;
}

或者,HWND top_child = GetWindow(thisWindow, GW_CHILD);

该代码段涉及到窗口句柄和子窗口的获取,是与Windows操作系统相关的IT技术内容。

+1,我接受这个答案。因为它有助于获取我正在使用的GetWindow(thisWindow,GW_HWNDFIRST)。 - ukanth

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

    return FALSE; // stops enumeration.
}

请参阅MSDN获取完整信息,但相关行如下:

返回值

BOOL

回调函数必须返回TRUE以继续枚举;返回FALSE以停止枚举。


2

GetWindow(...,GW_CHILD)可以获取z-order顶部的窗口,我猜这正是你想要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接