数据交换在 CPropertyPage::OnOK 内完成?
Data exchange finished in CPropertyPage::OnOK?
我的对话框来自 CPropertyPage
。
为了 运行 一些自定义检查,我已经覆盖了 OnOK()
。但是,似乎 动态数据交换 (DDX) 已经完成并且我的 class 变量在我的处理程序被调用时已经更新。
我认为当我调用 CPropertyPage::OnOK()
时会发生 DDX,这是我在处理程序末尾所做的。
此外,如果我的代码决定对话框不应该关闭并且 returns 没有调用 CPropertyPage::OkOK()
,对话框仍然关闭!
如何在 DDX 更新我的 class 变量之前 运行 我的自定义检查?
P.S。似乎不再默认安装MFC源代码,安装选项none提到MFC源代码。谷歌搜索后,我发现提到了几个选项。我查了他们,我仍然没有MFC源代码。
CPropertyPage::OnOK()
与 CDialogEx::OnOK()
不一样。
属性 页面应该覆盖 CPropertyPage::OnKillActive()
。此方法允许我执行自定义验证和 return FALSE
而无需调用 CPropertyPage::OnKillActive()
以防止对话框关闭或切换到另一个选项卡。
我的对话框来自 CPropertyPage
。
为了 运行 一些自定义检查,我已经覆盖了 OnOK()
。但是,似乎 动态数据交换 (DDX) 已经完成并且我的 class 变量在我的处理程序被调用时已经更新。
我认为当我调用 CPropertyPage::OnOK()
时会发生 DDX,这是我在处理程序末尾所做的。
此外,如果我的代码决定对话框不应该关闭并且 returns 没有调用 CPropertyPage::OkOK()
,对话框仍然关闭!
如何在 DDX 更新我的 class 变量之前 运行 我的自定义检查?
P.S。似乎不再默认安装MFC源代码,安装选项none提到MFC源代码。谷歌搜索后,我发现提到了几个选项。我查了他们,我仍然没有MFC源代码。
CPropertyPage::OnOK()
与 CDialogEx::OnOK()
不一样。
属性 页面应该覆盖 CPropertyPage::OnKillActive()
。此方法允许我执行自定义验证和 return FALSE
而无需调用 CPropertyPage::OnKillActive()
以防止对话框关闭或切换到另一个选项卡。