MFC Page 和Sheet 控件使用例子
来源:互联网 发布:刷网站流量软件 编辑:程序博客网 时间:2024/05/22 05:16
目的:学习使用page 和 sheet 控件
步骤:
新建一个对话框类型的工程
利用insert dialog添加两个对话框
打开新添加的对话框,右击classWizard 选择新添加一个类,如下图
单机ok添加类名和basic类型分别为“Cpage1,CPropertyPage”“ Cpage2,CPropertyPage”如下图:
在两个对话框里选中按钮“OK”“Cancel”组件,右键property,取消visible
如下图
在两个对话框里分别添加一些按钮,如在Cpage1里添加:
为Cpage2的控件添加成员变量如下图
在工具栏里面单击Viewè→ClassWizardè→ AddClassènewè如下图
单击OK
在Cpage1里面右击classWinzerd,添加如下函数
Add Function è Edit Code,添加如下代码
BOOL Cpage1::OnSetActive()
{
((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_NEXT);
returnCPropertyPage::OnSetActive();
}
在Cpage1里面右击classWinzerd,添加如下函数,Add Function →Edit Code,添加如下代码
LRESULT Cpage1::OnWizardNext()
{
intcount;
CStrings;
count=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO4);
if(count==0)
{
MessageBox("error!");
return-1;
}
else
{
GetDlgItemText(count,s);
MessageBox("职业是:"+s);
}
returnCPropertyPage::OnWizardNext();
}同理在Cpage2 里进行如下操作:
添加如下代码
BOOL Cpage2::OnSetActive()
{
//TODO: Add your specialized code here and/or call the base class
((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_FINISH);
returnCPropertyPage::OnSetActive();
}
添加如下代码:
BOOL Cpage2::OnWizardFinish()
{
int i,
m[4]={IDC_CHECK1,IDC_CHECK2,IDC_CHECK3,IDC_CHECK4};
CStringe,g;
for(i=0;i<4;i++)
{ if(((CButton*)GetDlgItem(m[i]))->GetCheck())//循环获取多选组被选项的ID
{ GetDlgItem(m[i])->GetWindowText(e);//将ID对应的标题放到e中
g+=e;
}
}
MessageBox("爱好是:"+g);//显示所有选择项
}
在sheet.h头文件里添加如下代码
添加头文件
#include "page1.h"
#include "page2.h"
添加公共成员
Cpage1 p1;
Cpage2 p2;
在ClassView里面双击Csheet的构造函数文件
在其函数里添加如下代码
Csheet::Csheet(LPCTSTR pszCaption, CWnd*pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption,pParentWnd, iSelectPage)
{
AddPage(&p1);
AddPage(&p2);
}
回到工程窗口,添加一个按钮,改名为“开始调查”,双击它,添加如下代码
#include " sheet.h"
void CChosecardDlg::OnButton1()
{
//TODO: Add your control notification handler code here
Csheeta("调查表");
//a.SetWizardMode();//可以省略,不省略是另一种模式
a.DoModal();
}
省略a.SetWizardMode();
模式如下
不省略模式如下:
完成!!!
注:可以添加page1的私有成员CString s,page2的私有成员CString g,将选择了page1的内容s中,将选择了page2的内容g中。再做如下处理
CString s1,s2;
Csheeta("调查表");
a.SetWizardMode();//可以省略,不省略是另一种模式
a.DoModal();
MessageBox("职业是:"+a.p1.s+""+"爱好是:"+a.p2.g);
这样当最后点击完成的时候可以弹出总的选择。
- MFC Page 和Sheet 控件使用例子
- MFC 树控件使用例子
- page-tagelib的使用例子
- mfc-串口控件的添加和使用
- MFC-简单使用进度条和滑动控件
- MFC Icon使用例子
- MFC tab控件和list控件的使用
- Tab 控件使用例子
- TreeView 控件使用例子
- ComplexLockHeaderGrid控件使用例子
- 使用MFC控件:
- MFC 树形控件使用
- MFC控件使用
- MFC控件使用
- MFC 控件使用一
- MFC使用ListCtrl控件
- MFC使用TreeCtrl控件
- MFC控件的使用
- 编译原理实验一
- Android之使用Android-query框架进行开发
- 【百度地图API】百度API卫星图使用方法和卫星图对比工具
- spring3.1.x与quartz2.1.6整合的问题
- eclipse/myeclipse注释模板的修改
- MFC Page 和Sheet 控件使用例子
- SharePoint 2010 创建审批视图
- 关于strut2的标签
- SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED
- 用16G内存在Java Map中处理30亿对象
- Linux 信号signal处理机制
- 怎样将纸质文档转换成图片,然后转换成word文字
- 一个经典例子让你彻彻底底理解java回调机制
- Linux下Tomcat启动正常,但浏览器无法访问