【发布时间】:2016-09-26 15:39:49
【问题描述】:
我在CPropertyPage 中有一个CMFCColorButton。当我单击按钮时,会出现颜色选择弹出窗口。我可以选择一种颜色,然后弹出窗口关闭,我可以得到颜色等。一切都很好。但是当我在弹出窗口打开时单击其他地方时,它不会关闭。它应该是什么 - 发生了什么?
【问题讨论】:
-
听起来像是育儿问题。检查您为按钮和弹出对话框提供的父窗口指针。两者的父级都应该是页面。
我在CPropertyPage 中有一个CMFCColorButton。当我单击按钮时,会出现颜色选择弹出窗口。我可以选择一种颜色,然后弹出窗口关闭,我可以得到颜色等。一切都很好。但是当我在弹出窗口打开时单击其他地方时,它不会关闭。它应该是什么 - 发生了什么?
【问题讨论】:
当您在对话框中使用此特殊弹出窗口时,我就知道了这个问题。您必须使用 CDialogEx 而不是 CDialog。
CDialogEx 将 OnNcActivate 与关闭弹出窗口的 CDialogImpl 类一起使用。 正如我看到的,在 CMFCPropertySheet 和 CMFCPropertyPage 中使用了相同的处理方式。
所以解决方案应该使用 CMFCPropertySheet 和 CMFCPropertyPage 而不是 CProperty... 类。
【讨论】: