1

我正在尝试从代码中关闭对话框(基本上是从属性表类派生的)。以下是我的代码:

LRESULT CSettingsSheet::OnCloseSettings(WPARAM wParam, LPARAM lParam)
{
EndDialog(IDCANCEL);
return 0;
}

问题是 endDialog 不仅会终止对话框,还会终止主应用程序窗口。这个问题的原因可能是什么?

顺便说一句,我在主窗口中创建此对话框如下

if(settingsSheet.DoModal() == IDOK)
{

}
else
{

}

理想情况下,我应该使用 IDCANCEL 设置这个 domodal 值,而不是调用结束对话框。

谢谢,库拉姆。

4

2 回答 2

4

您需要将PSM_PRESSBUTTON 消息发送到属性表窗口:

模拟属性表按钮的选择。您可以显式发送此消息,也可以使用 PropSheet_PressButton 宏。

PSBTN_CANCEL- 选择取消按钮。

PSBTN_OK- 选择确定按钮。此值在使用 Aero 向导样式 (PSH_AEROWIZARD) 时无效。

于 2013-10-02T06:43:28.477 回答
0

MFC 有一个用于此 CPropertySheet::PressButton 的函数。

于 2013-10-02T08:24:01.533 回答