属性页上点取消后如何保持页面不消失? 我做了个属性表单,期望用户在点属性页上的取消按钮时,弹出一个对话框,提示用户是否真的要取消。可是,我发现不论用户如何选择,属性页最终还是消失了。请问,这个如何解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以增加一个IDCCANCEL 的响应函数,然后把调用基类的函数做相应处理。或者把那按钮的ID改一,不是IDCCANCEL 就行。 重载OnCancel事件把CProeretyPage::OnCancel这句话去掉即可,不过我不记得了是CProeretyPage::OnCancel还是CDialog::OnCancel了 回2楼3楼兄弟的话。我是把属性表单最终做成了向导对话框的形式,即在DoModal之前直接调用了SetWizardMode()函数。那个上一步啊下一步啊取消啊这些按钮是向导自己生成的,因此,没有ID的概念。3楼兄弟说重载OnCancel,这个我最开始就是这么考虑的,可是就算把重载的这个函数里的代码全部注释,也即注释掉了CProeretyPage::OnCancel,仍然是一点取消,窗口消失。 1楼要的代码,因为是MFC程序,给代码太麻烦。我就把我做的过程说一下吧。先插入两个属性页,分别创建对应的类CProp1和CProp2,它们的基类都是CPropertyPage.然后新建一个类CPropSheet,基类为CPropertySheet,在这个类中添加两个成员变量,分别是CProp1 m_prop1和CProp2 m_prop2,然后在构造函数中用AddPage(&m_prop1);AddPage(&m_prop2)。之后,在菜单上创建一个菜单项,相应菜单项的命令于View中,在这个响应函数中,有如下语句:CPropSheet dlg("123");dlg.SetWizardMode();dlg.DoModal();为了能阻止向导对话框在第一步点取消按钮后直接消失窗口,我在CProp1类中重写了OnCancle()函数:void CProp1::OnCancel(){ // TODO: Add your specialized code here and/or call the base class //CPropertyPage::OnCancel();}整个过程就是这样的。可是始终无法在第一步阻止这个取消效果。 没用过,也许应该重载CPropSheet的OnCancel()。 回楼上:CPropSheet有OnCancel()吗?它并不是CDialog派生出来的啊。很急哦,麻烦高手们多指教一下。 响应IDOK消息或者是IDCANCEL消息了。 回楼上的,这里的取消按钮是向导对话框自己生成的,我不知道如何响应IDOK消息或者是IDCANCEL消息。而且,也确实找不到这个消息原型。 关于hoops的问题 散分(二) 非模态对话框的问题???? 请问如何从共享电脑上拷贝文件? 用GetFieldValue()取SQLServer2000中的nvarchar等类型数据的问题 执行SQL语句的时候,出现“参数不足,期待是1”的异常,请问这个异常代表什么含义?谢谢 极端算法求救!100分相送,不够再加;见者有份! 求两直线相交的焦点坐标, 诚聘图像开发人员 请问怎样在内存中画图 数据库问题 SetImageList 的作用
或者把那按钮的ID改一,不是IDCCANCEL 就行。
3楼兄弟说重载OnCancel,这个我最开始就是这么考虑的,可是就算把重载的这个函数里的代码全部注释,也即注释掉了CProeretyPage::OnCancel,仍然是一点取消,窗口消失。
CPropSheet dlg("123");
dlg.SetWizardMode();
dlg.DoModal();
为了能阻止向导对话框在第一步点取消按钮后直接消失窗口,我在CProp1类中重写了OnCancle()函数:
void CProp1::OnCancel()
{
// TODO: Add your specialized code here and/or call the base class //CPropertyPage::OnCancel();
}
整个过程就是这样的。可是始终无法在第一步阻止这个取消效果。
很急哦,麻烦高手们多指教一下。