我有一个 MFC 对话框和一个 ActiveX 网格控件。每当用户尝试编辑日期类型的网格单元格时,我都会创建一个 CDateTimeCtrl 并显示在网格内。此控件是作为网格控件的子控件创建的,但它是对话框类中的一个变量。
现在,我想在我的对话框类中处理这个日期控件的 DTN_DATETIMECHANGE 消息。我可以在 Spy++ 中看到,这些消息被发送到网格控件,但是我们如何在祖 parent 的(对话框)类中处理这个?
最佳答案
您是否尝试过将它创建为 sibling ,但只是在 Z 顺序中更高?您可能需要将 WS_CLIPSIBLINGS 添加到父对话框的样式,以避免网格在日期控件上绘制的问题。
另一种技术是使用充当转发器的中间子级,因此网格包含转发器,转发器包含日期控制。这样您的代码仍然会收到通知;并且您仍然可以获得适当的 HWND 遏制效果。 (转发器通常没有边框,只是调整其唯一子节点的大小以占据其整个客户区域,因此对最终用户不可见。)
关于c++ - 处理孙子控件的 WM_NOTIFY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164756/