1、修改或隐藏“帮助”“下一步”上一步“取消”四个按钮
自定义一个CPropSheet类继承CPropertySheet,并在初始化构造函数中进行修改

CPropSheet::CPropSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage):CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{}CPropSheet::CPropSheet(LPCTSTR pszCaption,CWnd* pParentWnd, UINT iSelectPage):CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{}BOOL CPropSheet::OnInitDialog()
{BOOL bResult = CPropertySheet::OnInitDialog();// Hide Help buttonsthis->GetDlgItem(IDHELP)->ShowWindow(SW_HIDE);// 向左移动上一步按钮{CWnd *pWndBack =  this->GetDlgItem(ID_WIZBACK);CRect rectBack;pWndBack->GetWindowRect(&rectBack);//获得空间的绝对坐标ScreenToClient(&rectBack);//获得相对于主窗体的坐标CPoint& ptLT = rectBack.TopLeft();ptLT.x -= 40;CPoint& ptRB = rectBack.BottomRight();ptRB.x -= 40;pWndBack->MoveWindow(rectBack);}// 向右移动取消按钮{CWnd *pWndCancel =  this->GetDlgItem(IDCANCEL);CRect rect;pWndCancel->GetWindowRect(&rect);//获得空间的绝对坐标ScreenToClient(&rect);//获得相对于主窗体的坐标CPoint& ptLT = rect.TopLeft();ptLT.x += 30;CPoint& ptRB = rect.BottomRight();ptRB.x += 30;pWndCancel->MoveWindow(rect);}//CWnd *pWndBack =  this->GetDlgItem(ID_WIZBACK);//pWnd1->SetWindowText(_T("向上"));//CWnd *pWnd1 =  this->GetDlgItem(ID_WIZNEXT);//pWnd1->SetWindowText(_T("向下"));//CWnd *pWnd2 =  this->GetDlgItem(ID_WIZFINISH);//pWnd2->SetWindowText(_T("好了"));//CWnd *pWnd4 =  this->GetDlgItem(IDCANCEL);// pWnd4->SetWindowText(_T("取消了"));return bResult;
}

添加属性页

class CPropPage : public CPropertyPage
{DECLARE_DYNAMIC(CPropPage )public:CPropPage (vector<CString> vecProName, CString strDefault, int nProType);virtual ~CPropPage ();// 对话框数据enum { IDD = IDD_PROPPAGE_MANAGEPRO };protected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持virtual BOOL OnInitDialog();DECLARE_MESSAGE_MAP()
public:virtual BOOL OnSetActive();virtual LRESULT OnWizardNext();
};BOOL CPropPage ::OnInitDialog()
{CPropertyPage::OnInitDialog();// TODO:  在此添加额外的初始化for (auto proItor = m_vecProName.begin(); proItor != m_vecProName.end(); ++proItor){m_cmbCopy.AddString(*proItor);m_cmbCur.AddString(*proItor);}if (!m_strDefault.IsEmpty()){int nFind = m_cmbCopy.FindStringExact(-1, m_strDefault);if( nFind <= 0 ){nFind = 0;}m_cmbCopy.SetCurSel(nFind);nFind = m_cmbCur.FindStringExact(-1, m_strDefault);if( nFind <= 0 ){nFind = 0;}m_cmbCur.SetCurSel(nFind);}else{m_cmbCopy.SetCurSel(0);m_cmbCur.SetCurSel(0);}return TRUE;
}BOOL CPropPage ::OnSetActive()
{// TODO: 在此添加专用代码和/或调用基类((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_NEXT);return CPropertyPage::OnSetActive();
}LRESULT CPropPage ::OnWizardNext()
{// TODO: 在此添加专用代码和/或调用基类class vector_finder{public:vector_finder(const CString sName){m_sName = sName;}bool operator ()(const CString &value){return value == m_sName;}private:CString m_sName;                    };auto findItor = std::find_if(m_vecProName.begin(),m_vecProName.end(),vector_finder(m_strPlanName));if (findItor != m_vecProName.end()){MessageBox(_T("方案名称不能重复,请重新输入!"),_T("方案管理"),MB_ICONWARNING); GetDlgItem(IDC_EDIT_NEWPRO)->SetFocus();return -1;}}else{m_cmbCur.GetWindowText(m_strPlanName);}return CPropertyPage::OnWizardNext();
}m_proPage = new CPropPage ();CPropSheet propSheet(_T("方案"));propSheet.AddPage(m_proPage );

MFC属性页CPropertySheet的使用相关推荐

  1. VS2015 MFC属性页孙鑫笔记

    /************************创建属性页表单*********************************************/ 一 创建单文档程序 二 切换到资源视图通过 ...

  2. MFC创建属性页详细步骤与注意事项

    MFC创建属性页 第一步,右击插入(我有三个): 第二步,修改名称(左单击一下刚刚创建的可以改名字,双击就是打开了,就到内部属性了,我的是下面三个为属性表单): 第三步,修改属性,我是这么改的,暂时和 ...

  3. MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)

    前面讲了模态对话框和非模态对话框,本节来将一种特殊的对话框--属性页对话框. 属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面 ...

  4. MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)

    属性页对话框包括向导对话框和一般属性页对话框两类,上一节讲了如何创建并显示向导对话框,本节将继续介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的.将上 ...

  5. VC++在对话框中加入属性页

    当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置.本文针对这种方法来讨论几种可能实现的方案. 方案一 本方案的例子请见源代码打包文件中的Property1部分 在对 ...

  6. 【转载】在对话框中加入属性页

    原文地址:http://www.vckbase.com/document/viewdoc/?id=398 在对话框中加入属性页 作者:黄晨量 下载本文全部源代码 当一个基于对话框的程序中有相当多的控件 ...

  7. 利用tab_control控件在对话框中加入属性页的方法详细介绍

    在对话框中加入属性页 方案一 在对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个).然后利用Class Wizard来为Tab C ...

  8. 在对话框中加入属性页

    资料来源 http://www.vckbase.com/document/viewdoc/?id=398 在对话框中加入属性页 作者:黄晨量 下载本文全部源代码 当一个基于对话框的程序中有相当多的控件 ...

  9. 鸡啄米vc++2010系列12(属性页对话框)

    前面讲了模态对话框和非模态对话框,本节开始鸡啄米讲一种特殊的对话框--属性页对话框.另外,本套教程所讲大部分对VC++各个版本均可适用或者稍作修改即可,但考虑到终究还是基于VS2010版本的,所以将& ...

最新文章

  1. php libev pthreads,libuv 与 libev 的对比
  2. 轻量级的jQuery表单验证插件 - HAPPY.js
  3. CI Weekly #7 | Instgram/Quora 等大公司如何做持续部署?
  4. Windows核心编程 第八章 用户方式中线程的同步(上)
  5. 机器人学习--路径规划算法
  6. python批量添加水印_用Python批量添加水印,提高工作效率!
  7. android动画效果 translate,Android利用translate、scale、alpha、rotate实现动画效果
  8. php mvc urlencode,PHP – LIUGUOFENG
  9. 台式计算机的硬件组成部分,台式电脑主机的硬件组成部分简介
  10. 【报告分享】2019年中国95后洞察报告.pdf(附下载链接)
  11. ArrayList的去重问题
  12. [lammps教程]OVITO绘制原子运动轨迹线
  13. [渝粤教育] 长沙航空职业技术学院 液压与气动技术 参考 资料
  14. 【中科院信工所】22考研经验分享
  15. 在树莓派上创建区块链节点
  16. element-ui中table 去掉表头、去掉边框线、去掉鼠标悬停背景颜色
  17. 【BZOJ1491】[NOI2007]社交网络 Floyd
  18. 小白跑WRF第七天,运行WRF案例
  19. 把代码字体加大的办法
  20. Java接入微信支付超级详细教程——从入门到精通

热门文章

  1. 如何快速写完SCI论文
  2. ieee计算机论文格式,[计算机]小论文撰写格式.doc
  3. Unity Hub许可证问题 达到最大申请次数之类的,Serial has reached the maximum number of activations
  4. 不断升级的USB-C接口
  5. 本地搭建自己的kindle书库,并实现公网访问
  6. Jedis远程链接阿里云Redis
  7. php公众号交友源码_个性定制微信导航源码,PHP公众号导航源码,含手机wap版,微信数据...
  8. [转]提交表单后 PHP获取提交内容 的方法
  9. Android 设置listview在scrollView中不滚动的方法
  10. mysql连接查询分为几种方式_SQL多表查询的几种连接方式