0

我正在收听诸如对象销毁、隐藏、显示、创建等情况的全局获胜事件……</p>

但是,我想根据该句柄(HWND)是什么来做某些事情。例如,一个按钮只是被隐藏或破坏了还是一个窗口?是隐藏的子窗口还是父窗口?最后一个问题是关于在父窗口关闭时似乎为父窗口中的每个对象引发的事件,这是太多的噪音。试图弄清引发事件的原因。

https://docs.microsoft.com/en-us/windows/win32/winauto/what-are-winevents

4

1 回答 1

0

Windows 提供了一组丰富的函数来查询HWND. 例如(为简洁起见省略了错误检查):

一个按钮只是被隐藏或破坏了还是有一个窗口?

TCHAR classname [32];
GetClassName (hWnd, classname, 32);
if (_tcscmp (classname, __T ("BUTTON")) == 0)
    ...

是隐藏的子窗口还是父窗口?

LONG dwStyle = GetWindowLong (hWnd, GWL_STYLE);
if (dwStyle & WS_CHILD)
    ...

当父窗口关闭时,会为父窗口中的每个对象引发一个事件,这是太多的噪音。

我认为您对此感到困惑。当父窗口被销毁时,它会自动销毁其所有子窗口,并且每个子窗口都会发送相应的事件作为结果。

于 2021-07-11T23:13:12.140 回答