参考 http://blog.csdn.net/anye3000/article/details/6700023

CTabCtrl:

BOOL CTabTestDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码
m_TabCtrl.InsertItem(, "表一");
m_dlgTabl1.Create(IDD_DIALOG1, &m_TabCtrl);
//设立页面在控件中的范围
CRect rc;
m_TabCtrl.GetClientRect(rc);
rc.top += ;
rc.bottom -= ;
rc.left += ;
rc.right -= ;
m_dlgTabl1.MoveWindow(rc);
m_dlgTabl1.ShowWindow(SW_SHOW);
m_TabCtrl.InsertItem(, "表二");
m_dlgTabl2.Create(IDD_DIALOG2, &m_TabCtrl);
m_dlgTabl2.MoveWindow(rc);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}

在点击标签时要增加事件

void CTabTestDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码 switch(m_TabCtrl.GetCurSel())
{
case :
{
m_dlgTabl1.ShowWindow(SW_SHOW);
m_dlgTabl2.ShowWindow(SW_HIDE);
break;
}
case :
{
m_dlgTabl1.ShowWindow(SW_HIDE);
m_dlgTabl2.ShowWindow(SW_SHOW);
break;
}
default:
m_dlgTabl1.ShowWindow(SW_SHOW);
m_dlgTabl2.ShowWindow(SW_HIDE); }
*pResult = ;
}

CPropSheet:

在设置器中添加几个PropertypePage, 分别建立类, 增加OnSetActive(必要)事件处理, OnWinzarNext事件处理

BOOL PropPage2::OnSetActive()
{
CPropertySheet* pSheet = (CPropertySheet*)GetParent();
pSheet->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
return CPropertyPage::OnSetActive();
} LRESULT PropPage2::OnWizardNext()
{
//Radio分组是以每个分组第一个radio设置属性group为true, 后面的radio不用设置, 都属于这个组,
//第二组的第一个radio也是设置group为true, 其它本组radrio不用设置group, 依次类推
if(m_Sel1.GetCheck() == && ((CButton*)GetDlgItem(IDC_RADIO2))->GetCheck() ==
&& ((CButton*)GetDlgItem(IDC_RADIO1))->GetCheck() == )
{
MessageBox("请选择数字1");
return -;
}
else if((((CButton*)GetDlgItem(IDC_RADIO4))->GetCheck() == )
&& ((CButton*)GetDlgItem(IDC_RADIO5))->GetCheck() == )
{
MessageBox("请选择数字2");
return -;
}
return CPropertyPage::OnWizardNext();
}

在类视图中右击添加一个类, 选择MFC类(不是普通类), 继承选择CPropertySheet, 添加几个PropertypePage派生类成员, PropSheet构造函数加入数据成员.

 

PropSheet::PropSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
AddPage(&m_PropPage1);
AddPage(&m_PropPage2);
AddPage(&m_PropPage3);
AddPage(&m_PropPage4);
}

常用控件使用在附件中. 包括单选, 复选按钮, 下拉列表, 进度条,CSpinButton(点了数字加减, 或滚动条移的那种按钮), 滑动条.

本例源码下载

另附:孙鑫MFC讲义代码下载

MFC学习 标签页与属性页及各常用控件使用的更多相关文章

  1. bootstrap学习之利用CSS属性pointer-events禁用表单控件

    参考链接: CSS3 pointer-events:none应用举例及扩展 首先pointer-events在除去SVG中的应用只有两个值:AUTO | NONE pointer-events:non ...

  2. VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下)

    上一节中鸡啄米讲了标签控件知识的上半部分,本节继续讲下半部分. 标签控件的创建 MFC为标签控件的操作提供了CTabCtrl类. 与之前的控件类似,创建标签控件可以在对话框模板中直接拖入Tab Con ...

  3. VS2010/MFC编程入门之二十(常用控件:静态文本框)

    上一节鸡啄米讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始鸡啄米将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组 ...

  4. VS2010-MFC(常用控件:标签控件Tab Control 下)

    转自:http://www.jizhuomi.com/software/207.html 上一节讲了标签控件知识的上半部分,本节继续讲下半部分. 标签控件的创建 MFC为标签控件的操作提供了CTabC ...

  5. MFC编程入门之二十(常用控件:静态文本框)

    上一节讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控 ...

  6. winFrom 常用控件属性及方法介绍

    目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichTextBox控件 5.NumericUpDown控件 6.Button(按钮)控件 7.Gro ...

  7. MFC之常用控件(四)

    常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控件.列表控件.树形控件和进度条控件等等.本节教程先来讲解静态文本框的使用. 控件的通知消息 在将静态文本框的使用之 ...

  8. C# 常用控件属性及方法介绍

      C#常用控件属性及方法介绍                                               目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox ...

  9. C#常用控件的属性以及方法(转载)

    -----以前看别人的,保存了下来,但是忘了源处,望见谅. C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichText ...

随机推荐

  1. git在本地创建远程仓库

    类似的博文,在前面的帖子里面也提到过,当时讲述的是一个入门级别的.其URL是ssh://username@repo-host-address/repo-path这种格式. 今天再说说如何创建类似Git ...

  2. Cordova调用Activity

    首先需要编写一个CallActivityPlugin插件,专门调用Activity package com.example.plugin; import org.apache.cordova.api. ...

  3. Java文件读写

    import java.io.*; public class Study { public static void main(String[] args) { try { String strPath ...

  4. js替换字符指定字符方法

    1.递归替换 function replaceChar(str, oldChar, newChar) { if (str.indexOf(oldChar) != -1) { str = str.rep ...

  5. SPOJ #440. The Turtle´s Shortest Path

    Coding a Dijkstra is not hard. %70 of my time spent on tackling TLE, as my last post. Dijkstra works ...

  6. IntelliJ IDEA配置svn

    Settings→Version Control→General 输入svn客户端命令所在的路径   来自为知笔记(Wiz)

  7. js setTimeout

    setTimeout用法 //每个0.5秒钟改变字体和背景颜色,字体一闪一闪的效果 var flag = 0; function start(){ var text = document.getEle ...

  8. shell中大小写转换

    有两种方式: 1.用tr 例如:UPPERCASE=$(echo $VARIABLE | tr '[a-z]' '[A-Z]')   (把VARIABLE的小写转换成大写) LOWERCASE=$(e ...

  9. C#多线程编程(转)

    一.使用线程的理由 1.可以使用线程将代码同其他代码隔离,提高应用程序的可靠性. 2.可以使用线程来简化编码. 3.可以使用线程来实现并发执行. 二.基本知识 1.进程与线程:进程作为操作系统执行程序 ...

  10. GL_GL系列 - 总账系统基础(概念)

    2014-07-07 Created By BaoXinjian