Win32API:如何向父窗口请求嵌入式 Windows 事件通知

Posted

技术标签:

【中文标题】Win32API:如何向父窗口请求嵌入式 Windows 事件通知【英文标题】:Win32API: How to request embedded windows event notifications out to a parent window 【发布时间】:2010-02-05 18:42:14 【问题描述】:

场景:我想要一个窗口控件,它是我的对话框中的子窗口(子窗口的子窗口),以将其通知消息传播到对话框窗口。

例如COMBOBOX 包含一个 EDIT 控件。我有一种情况,我真的很想知道 EDIT 字段何时获得和失去焦点(主要是因为愚蠢的 COMBOBOX 不会声明焦点或在其嵌入式 EDIT 发生时不给我通知)。

但我可以看出这可能是一个普遍问题:控件向其父级 WM_NOTIFY... 发出一条消息,直接父级并不关心,但它的父级可能关心。

是否有一种通用的方法来要求窗口窗口从其子窗口传播通知消息?

例如如果对话框 D 有一个控件 C 有一个子控件 C',那么有没有办法确保 D 收到来自 C' 的 WM_NOTIFY 消息?

【问题讨论】:

我能否澄清一下 - 您使用的是 MFC 还是 Win32 - WM_NOTIFY 听起来像 Win32? 我对两者都很满意。但是,由于 MFC 只是 Win32 的一个包装器,因此就 Win32 而言它更直截了当。但是,如果有人想以 MFC 的形式呈现信息,我会很高兴。这有帮助吗? 是的,谢谢,只是检查一下。不过我仍然不确定我是否有解决方案。 【参考方案1】:

我相信您需要对窗口进行子类化,请参阅http://msdn.microsoft.com/en-us/library/ms997565.aspx(内容已被删除!)。

【讨论】:

这就是我正在做的事情。希望有一种不那么老套的方法。

以上是关于Win32API:如何向父窗口请求嵌入式 Windows 事件通知的主要内容,如果未能解决你的问题,请参考以下文章

如何在 win32API 中更改静态窗口的背景颜色? [复制]

perl win32 api 如何遍历已打开窗口,获得每个窗口的标题内容

如何使用 Win32 API 阻止来自透明窗口的鼠标输入?

将击键发送到 PowerPoint 窗口

Win32 API 打开新窗口

如何在win32 windows中创建嵌入式文本输入框