在win32中获取FirstChild?

发布于 2024-09-01 22:36:20 字数 229 浏览 8 评论 0原文

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

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

正确吗?或者任何其他简单的方法?

〜英国

I use EnumChildWindows to get all the Child windows from the main HWND window , But i would like to get only the first child of the given HWND window.

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

Is it correct ? or any other simple way ?

~UK

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

奶茶白久 2024-09-08 22:36:20
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)
{
  // process first child window
  return FALSE;
}

Alternatively, HWND top_child = GetWindow(thisWindow, GW_CHILD);

两相知 2024-09-08 22:36:20

当然:

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

    return FALSE; // stops enumeration.
}

请参阅 MSDN 了解完整详细信息,但相关行是这样的:

返回值

布尔

要继续枚举,回调
函数必须返回TRUE;停止
枚举,它必须返回FALSE

Sure:

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

    return FALSE; // stops enumeration.
}

See MSDN for full details, but the relevant line is this:

Return Value

BOOL

To continue enumeration, the callback
function must return TRUE; to stop
enumeration, it must return FALSE.

烟─花易冷 2024-09-08 22:36:20

GetWindow(...,GW_CHILD) 将给你 z 顺序顶部的窗口,我认为这就是你想要的

GetWindow(...,GW_CHILD) will give you the window at the top of the z-order which I assume is what you are after

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文