处理孙子控件的WM_NOTIFY

Handle WM_NOTIFY of a grand child control

本文关键字:WM NOTIFY 控件 处理      更新时间:2023-10-16

我有一个MFC对话框和一个ActiveX网格控件。每当用户尝试编辑日期类型网格单元格时,我都会创建一个CDateTimeCtrl并在网格内显示。此控件是作为网格控件的子控件创建的,但它是对话框类中的一个变量。

现在,我想在对话框的类中处理这个日期控件的DTN_DATETIMECHANGE消息。我可以在spy++中看到,这些消息被发送到网格控件,但是我们如何在祖父母的(对话框)类中处理这个?

您是否尝试将其创建为兄弟,但只是更高的Z顺序?您可能需要将WS_CLIPSIBLINGS添加到父对话框的样式中,以避免网格在日期控件上绘制的问题。

另一种技术是使用中间子节点作为转发器,因此网格包含包含日期控制的转发器。这样你的代码仍然会收到通知;你仍然可以得到适当的HWND遏制效果。(转发器通常没有边界,只是调整其唯一子节点的大小以占用整个客户端区域,因此最终用户不可见。)