gpt4 book ai didi

c++ - 如何 Hook MFC 自定义控件类中的控件关闭

转载 作者:行者123 更新时间:2023-11-30 02:12:22 24 4
gpt4 key购买 nike

我感兴趣的是分配指针,将它们存储在 comboboxex 控件的 LPARAM 数据中,并让该控件在销毁时负责删除这些指针。

由于我在 MFC 中工作,我可以子类化 CComboBoxEx,并添加消息处理程序或虚拟成员函数。

问题是:这种模式在 Win32/MFC 中是否可行?

基本上,控件如何得到通知其对应的 HWND 正在被销毁?

WM_DESTROY 的文档:

The WM_DESTROY message is sent when a window is being destroyed. It is sent to the window procedure of the window being destroyed after the window is removed from the screen. (Emphasis Mine)

不幸的是,我模糊的记忆是这意味着 OnDestroy() 来不及处理任何需要与关联的 HWND 交互的事情,不是吗?

我可以在 OnDestroy() 期间查询 comboboxex 中的元素吗?是否有另一个我可以使用的 Hook 发生在“就在我的窗口/控件被销毁之前(而不是之后!)?”

我想知道我是否为我的子类覆盖了 CBEM_DELETEITEM 并强制它删除了 LPARAM 数据。销毁 comboboxex 时是否明确删除了所有项目?如果是这样,它们是否都通过该消息被销毁(控件是否将该消息发送给自己?)

最佳答案

在 OnDestroy() 期间,您的窗口仍然有效——如果不是,您的窗口根本不会收到消息,因为它是通过标准 Windows 消息系统发送的。

您走在正确的轨道上——这种情况就是 OnDestroy() 的用途。

关于c++ - 如何 Hook MFC 自定义控件类中的控件关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1890502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com