VC++属性页的使用Word文档下载推荐.docx
- 文档编号:15897885
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:8
- 大小:18.78KB
VC++属性页的使用Word文档下载推荐.docx
《VC++属性页的使用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VC++属性页的使用Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
2、打开资源视图(ResourceView)的对话框目录(Dialog),在“Dialog”上右键、选择insert,在弹出的对话框中选择Dialog下的IDD_PROPPAGE_MEDIUM[English(U.S)]、点击new,这样我们就创建了一个新的属性页。
按照此方法我们再创建两个属性页。
3、在ResoureceView中右键新建的属性页,选择属性,在弹出的对话框中修改资源的ID为:
IDD_PROP1、IDD_PROP2、IDD_PROP3,语言调整为Chinese(P.R.C.)。
(在弹出的对话框上点左上角的图钉样子的图标可以保持当前对话框的可见性,使得在调整完一个资源属性之后不用关闭对话框,再点另外一个资源,对话框将自动切换成新资源的属性)。
4、设置属性页:
将属性页一、二、三的标题分别修改成第一步、第二步、第三步。
5、将属性页一中原来的提示删除,添加一个GroupBox控件,将GroupBox标题修改为“职位”;
然后在GroupBox中添加三个RadioButton,将标题分别修改为“程序员”、“系统架构师”、“系统分析师”。
添加一个静态文本标记(statictext)和一个ListBox,将ListBox属性中style的sort取消(这样保证不对选项进行排序,从而得到与输入一致的结果)。
6、将属性页二中原来的提示删除,添加一个GroupBox,标题为“爱好”;
然后添加四个复选框(CheckBox),分别为“足球”、“篮球”、“排球”、“游泳”。
7、将属性页三中原来的提示删除,添加一个静态文本,标题为“薪资水平”;
然后添加一个下拉列表(ComboBox),将其属性中style的sort取消。
这样基本的界面已经做出来了。
8、在新建的界面上右键、选择classwizard,新建类“CProp1”、“CProp2”、“CProp3”,基类为“CPropertyPage”。
9、新建一个类,名字为“CPropSheet”,基类为CPropertySheet。
这个类相当于CPropertyPage的容器。
在CPropSheet的构造函数中添加CProp1、CProp2、CProp3的对象,使得CPropertyPage放入“容器”。
过程:
a)首先添加三个成员变量,CProp1m_prop1、CProp2m_prop2、CProp3m_prop3,public属性;
b)在构造函数中:
this->
AddPage(&
m_prop1);
m_prop2);
m_prop3);
需要注意的是,CPropSheet有两个构造函数,需要在每个构造函数中都添加属性页。
10、在资源视图中找到菜单(MENU),打开,新建一个子菜单,标题为程序,取消其popup属性,设置ID为:
ID_SHEET。
右键“程序”,选择classwizard,添加一个消息相应函数,对应“CPropertyPageDemoView类”,函数默认为“OnSheet()”
11、针对OnSheet(),编写代码
a)我们首先需要将sheet显示出来(这时候的sheet已经拥有了属性页)。
CPropSheetsheet("
职业选择"
);
//构造一个sheet
sheet.SetWizardMode();
//设置成“下一步模式”否则是标签页形式
sheet.DoModal();
//以模态形式显示sheet
12、此时我们发现已经每个属性页都有了“上一步”、“下一步”、“取消”这三个按钮。
但是在第一个属性页中显示“上一步”和在第三个属性页中显示“下一步”是错误的,接下来我们要处理这个问题
a)在”CProp1”这个类上面右键选择addVirtualFunction这项,选中里面的OnSetActive,编辑代码:
在里面:
这里面用到了SetWizardButtons这个函数,但是msdn上面的说明是这个函数只能用CPropertySheet来调用,所以我们使用GetParent()这个函数获取CPropertySheet的一个指针,适用指针来操作SetWizardButtons这个函数。
((CPropertySheet*)this->
GetParent()/*该函数获得一个指定子窗口的父窗口句柄*/)->
SetWizardButtons(PSWIZB_NEXT);
b)同样我们修改第二、三个属性页:
GetParent())->
SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT);
SetWizardButtons(PSWIZB_FINISH);
13、设置第一个属性页“职位”项的数据和页面数据校验。
a)把RadioButton的“group”属性设置为true,然后右键选择classwizard选择MemberVariables
在看到的是IDC_RADIO1,点右边按钮“AddVariable”,依次设置为变量名m_occupation、类型value、变量类型int;
b)按照上面的办法设置ListBox,其中使用到的数据是:
IDC_LIST1,变量是m_workAddr,value、CString;
c)设置RadioButton组的校验:
i.当我们在点击“下一步”这个按钮的时候触发一个函数“OnWizardNext()”,这个函数的添加方法和12a)的方式一样;
ii接下来首先更新数据this->
UpdateData();
使得m_occpution获取值;
iii.判断接受到的值m_occupation,如果一组RadioButton有被选中的项的话,返回被选中的项的索引,这个索引从0开始计数;
如果没有选择的话返回-1;
If(m_occupation==-1)
{
MessageBox(“请选择职位!
”);
return-1;
//如果返回-1则不会执行“下一步”
}
14、设置第一个属性页“工作地点”项的数据和页面数据校验。
a)完善“工作地点项”的数据:
首先为“CProp1”这个类添加一个消息响应函数OnInitDialog(),保证在初始化属性页的时候进行数据的初始化,然后
((CListBox*)this->
GetDlgItem(IDC_LIST1))->
AddString("
上海"
北京"
成都"
这样完成数据的初始化
b)在OnWizardNext()函数中判断时候选择“工作地点”中的值
If(m_workAddr==””)
MessageBox(“请选择工作地点!
c)完成之后14、15步的代码:
LRESULTCProp1:
:
OnWizardNext()
//TODO:
Addyourspecializedcodehereand/orcallthebaseclass
this->
if(m_occupation==-1)
{
MessageBox("
请选择职位!
"
}
if(m_workAddr=="
)
请选择工作地点!
returnCPropertyPage:
OnWizardNext();
15、设置第二个属性页的数据和数据校验
a)首先关联变量:
将各项均关联成BOOL型的m_basketball、m_football、m_swim、m_volleyball
b)在OnWizardNext()函数中先更新数据,再判断,若是四个成员变量之中有一个为真,则可以进行“下一步”,否则提示,并保持当前属性页
c)代码
LRESULTCProp2:
if(m_basketball||m_football||m_swim||m_volleyball)
else
请选择爱好!
16、设置第三个属性页的数据和数据校验
a)将ComboBox关联CString类型变量m_salary
b)初始化数据:
BOOLCProp3:
OnInitDialog()
CPropertyPage:
OnInitDialog();
Addextrainitializationhere
((CComboBox*)this->
GetDlgItem(IDC_COMBO1))->
1000元以下"
1000-3000元"
3000元以上"
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
c)校验数据
OnWizardFinish()
if(m_salary=="
请选择薪资水平!
returnFALSE;
OnWizardFinish
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 属性 使用