我正在尝试从代码中关闭对话框(基本上是从propertysheet类派生的)。以下是我的代码:
LRESULT CSettingsSheet::OnCloseSettings(WPARAM wParam, LPARAM lParam)
{
EndDialog(IDCANCEL);
return 0;
}
问题是endDialog不仅终止了对话框,还终止了主应用程序窗口。这可能是造成这个问题的原因吗?
顺便说一句,我在主窗口中创建此对话框,如下所示
if(settingsSheet.DoModal() == IDOK)
{
}
else
{
}
理想情况下,我应该使用IDCANCEL设置此domodal值,而不是调用end dialog。
谢谢, Khurram。
答案 0 :(得分:4)
您需要将PSM_PRESSBUTTON message发送到属性表窗口:
模拟属性表按钮的选择。您可以显式地或使用PropSheet_PressButton宏发送此消息。
PSBTN_CANCEL
- 选择取消按钮。
PSBTN_OK
- 选择确定按钮。使用Aero向导样式(PSH_AEROWIZARD)时,此值无效。
答案 1 :(得分:0)
MFC具有此CPropertySheet :: PressButton的功能。