如何对Cpropertysheet中的“确定”按钮增加代码?

itti 2005-08-04 02:32:17
Hi, 我有一个CPropertySheet对象和二个CPropertyPage对象,如下:

CMyPropertySheet s("DD"); //CMyPropertySheet从CPropertySheet继承,
CMyPropertyPage p1; // //CMyPropertyPage从CPropertyPage继承,
CMyPropertyPage p2;
s.AddPage(&p1);
s.AddPage(&p2);
s.DoModal();

我想在按“确定”按钮时增加一些代码,如弹出一个保存文件的对话框。该如何写?
谢谢。
...全文
177 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_zhen_jun 2005-08-04
  • 打赏
  • 举报
回复
在类CMyPropertyPage中添加虚函数OnOk(),因为"确定"按钮是在属性页中.
itti 2005-08-04
  • 打赏
  • 举报
回复
CMyPropertySheet是从CPropertySheet继承而来的, 当然有"确定"按钮;
但CProperySheet中并没有OnOK虚函数可用。
lixiaosan 2005-08-04
  • 打赏
  • 举报
回复
在CMyPropertySheet中添加onok()
当然,首先CMyPropertySheet中要有"确定"按钮
各种消息框的的应用1 创建一个DLG程序 2 添加5个新的对话框资源ID分别为:MsgBoxSimple,MsgBoxOption,MsgBoxCustom,并调整其大小使他们尺寸一样 3 为2所添加的对话框创建新的类 class CPageSimple : public CPropertyPage class CPageOption : public CPropertyPage class CPageCustom : public CPropertyPage 保存在property.h和property.cpp。 4 在ShowBmpInPropertyBtnAreaDlg.h加入 #i nclude "property.h" ... public: CPropertySheet m_MyPropertySheet; //定义属性表变量 CPageSimple m_page1; //以下定义属性页成员变量 CPageOption m_page2; CPageCustom m_page3; 5 在对话框IDD_MESSAGEBOXES模板加入一个Picture控件,ID设为IDC_PROPSHEET,并调整其大小使其与对话框MsgBoxSimple大小相似 6 在CMessageBoxesDlg::OnInitDialog()加入 //属性表和属性页的成员变量我已经在头文件定义过了 //现在把属性页加入到属性表 m_MyPropertySheet.AddPage(&m_page1); m_MyPropertySheet.AddPage(&m_page2); m_MyPropertySheet.AddPage(&m_page3); //显示非摸态的属性表 m_MyPropertySheet.Create(this, WS_CHILD | WS_VISIBLE, 0); //当对话框搜索下一个Tab项时,WS_EX_CONTROLPARENT标记避免了死循环发生的可能性 //他可以让对话框搜索到属性表的子窗体控件,就象对话框窗体上的其他普通控件一样。 m_MyPropertySheet.ModifyStyleEx (0, WS_EX_CONTROLPARENT); //允许用户TAB键切换到属性表 m_MyPropertySheet.ModifyStyle( 0, WS_TABSTOP ); //显示属性表 CRect rcSheet; GetDlgItem( IDC_PROPSHEET )->GetWindowRect( &rcSheet ); ScreenToClient( &rcSheet ); m_MyPropertySheet.SetWindowPos( NULL, rcSheet.left-7, rcSheet.top-7, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE ); 7 添加一些按钮,映射各按钮的单击消息,并为响应函数编写代码如下 void CPageSimple::OnSimplestBtn() { MessageBox("这是最最简单的消息框"); } void CPageSimple::OnSimpleBtn() { AfxMessageBox("另一个简单的消息框"); } void CPageOption::OnOkBtn() { MessageBox("仅仅一个按钮确定的消息框", "信息提示消息框", MB_OK|MB_ICONINFORMATION); m_Message = "你只是确认了一下"; UpdateData(FALSE); } void CPageOption::OnOkcancelBtn() { int Response; Response = MessageBox("在这个消息框你可以选择确定和取消" "\n\n你也可以在此写下对行信息文本" "\n这是你的权利", "选择消息框", MB_OKCANCEL|MB_ICONASTERISK); if( Response == IDOK ) { m_Message = "你选择了确定"; UpdateData(FALSE); } else { m_Message = "你取消了"; UpdateData(FALSE); } } void CPageOption::OnYesnoBtn() { int Response; Response = MessageBox("你吃过了吗?我意思是指从昨天到现今", "信息提示", MB_YESNO|MB_ICONQUESTION); if( Response == IDYES ) { m_Message = "那么,我不需要再给你什么了"; UpdateData(FALSE); } else { m_Message = "那么走吧,正好我也没有吃,咱们一块去吃火锅!"; UpdateData(FALSE); } } void CPageOption::OnYesnocancelBtn() { int Response; Response = MessageBox("当你删除一个目录的时候,或者一个文档改动后," "\n退出程序的时候,这个消息框就会出现", "文档保存提示消息框", MB_YESNOCANCEL|MB_ICONWARNING);

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧