VS2008, MFC 编程 对话框 笔记6 - 属性表单 TAB 页面2 - 向导属性表单 List Box Combo Box

本文详细介绍了如何在VS2008的MFC对话框中创建属性表单,包括设置向导模式、禁用未选择选项的“下一步”按钮、列表框填充及验证、复选框选择验证和组合框操作。同时,展示了如何在用户完成选择后将信息显示在View类窗口中。
摘要由CSDN通过智能技术生成

本部分需要 查看 我的另一篇:VS2008, MFC 编程 对话框 笔记6 - 属性表单 TAB 页面1 - 点击子菜单 显示建立的属性对话框

1. 在上一篇, 成功的实现了点击 子菜单 PropertyPage 弹出 属性表单对话框,只需要在 建立模态对话框之前加入 设置向导模式就可以,函数为 SetWizardMode();

void Cvs2008_SX_jiaocheng08_1View::OnPropertypage()
{
	// TODO: 在此添加命令处理程序代码
	CPropSheet propSheet(L"Test Property Page sheet");//构造一个属性表单对象。标题为"Test Property Page sheet"
 
	propSheet.SetWizardMode();//设置向导 出现“下一步”“上一步”按钮
	propSheet.DoModal();//调用属性表单的DoModal来显示 一个模态的属性表单
}

2. 但是,在属性表单 第一页和最后一页 还是有上一步和下一步 的按钮,这里使用 重写OnSetActive

3. 重写函数分别为

BOOL CProp1::OnSetActive(void)
{
	//因为属性页时增加到属性表单的,所以属性页CPropPage是属性表单的Propsheet的子类
	//所以使用GetParent获取父类指针。
	((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_NEXT);//对于第一页只有“下一页”按钮。
	return CPropertyPage::OnSetActive();
}


BOOL CProp2::OnSetActive(void)
{

    //因为属性页时增加到属性表单的,所以属性页CPropPage是属性表单的Propsheet的子类
	//所以使用GetParent获取父类指针。
	((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT  );//对于第二页 是有“上一页”和“下一页”按钮。
	return CPropertyPage::OnSetActive();
}

BOOL CProp3::OnSetActive(void)
{
	//因为属性页时增加到属性表单的,所以属性页CPropPage是属性表单的Propsheet的子类
	//所以使用GetParent获取父类指针。
	((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_FINISH);//对于第三页 上一页  和 完成。
	return CPropertyPage::OnSetActive();
}

 

4. 设置 当用户 没有选择 单选项  就不能点击 “下一步”。并提示。

4.1 先把 Radio Button的属性中group 改为true,这样 Radio button:System Engineer 和 project Manager 就和 software Enginner 是一组。因此 给Software Engineer 关联int 变量,当选择Software Engineer 时 变量值为0,当选择Project Manager 变量值就为2. (组的的结尾为遇到下一个为组属性的结束,当Project Manager 设置为组, 那么Software Engineer 和 Systerm Enginner 为一

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值