MFC学习 标签页与属性页及各常用控件使用
参考 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学习 标签页与属性页及各常用控件使用的更多相关文章
- bootstrap学习之利用CSS属性pointer-events禁用表单控件
参考链接: CSS3 pointer-events:none应用举例及扩展 首先pointer-events在除去SVG中的应用只有两个值:AUTO | NONE pointer-events:non ...
- VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下)
上一节中鸡啄米讲了标签控件知识的上半部分,本节继续讲下半部分. 标签控件的创建 MFC为标签控件的操作提供了CTabCtrl类. 与之前的控件类似,创建标签控件可以在对话框模板中直接拖入Tab Con ...
- VS2010/MFC编程入门之二十(常用控件:静态文本框)
上一节鸡啄米讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始鸡啄米将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组 ...
- VS2010-MFC(常用控件:标签控件Tab Control 下)
转自:http://www.jizhuomi.com/software/207.html 上一节讲了标签控件知识的上半部分,本节继续讲下半部分. 标签控件的创建 MFC为标签控件的操作提供了CTabC ...
- MFC编程入门之二十(常用控件:静态文本框)
上一节讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控 ...
- winFrom 常用控件属性及方法介绍
目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichTextBox控件 5.NumericUpDown控件 6.Button(按钮)控件 7.Gro ...
- MFC之常用控件(四)
常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控件.列表控件.树形控件和进度条控件等等.本节教程先来讲解静态文本框的使用. 控件的通知消息 在将静态文本框的使用之 ...
- C# 常用控件属性及方法介绍
C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox ...
- C#常用控件的属性以及方法(转载)
-----以前看别人的,保存了下来,但是忘了源处,望见谅. C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichText ...
随机推荐
- openstack(liberty):部署实验平台(二,简单版本软件安装 part2)
继续前面的part1,将后续的compute以及network部分的安装过程记录完毕! 首先说说compute部分nova的安装. n1.准备工作.创建数据库,配置权限!(密码依旧是openstack ...
- Servlet Filter 2
10.Filter常见应用 )统一全站字符编码的过滤器 通过配置参数encoding指明使用何种字符编码,以处理Html Form请求参数的中文问题 案例:编写jsp 输入用户名,在Servlet中获 ...
- javascript中的事件学习总结
一.实例: 一段用js实现的固定边栏滚动特效代码(跨浏览器使用): 二.总结: 由于事件处理在不同浏览器之间存在差异(主要是要考虑ie8及以下浏览器的兼容性),所以在使用处理事件的方法之前,先要判断当 ...
- 百度地图和js操作iframe
document.getElementById("ifarme-63").contentWindow.document.getElementById("qksv" ...
- android学习笔记18——dpi、dp、sp、xp......
参考:http://www.cnblogs.com/greatverve/archive/2011/12/28/android-dip-dp-sp-pt-px.html http://www.360 ...
- SQL Server 中LEN函数的问题
LEN('T ') =1 LEN(' T') =2 在数据库中分解字符串时要注意,例如以'^'分隔'X ^ T ',分解时要注意最后的'T '被分解成'T' 可用如下的代码来进行完整的分解 SET A ...
- Mysql分区技术
注:分区的语法可以看手册中有详细的写法和例子: show plugins; 此命令查看可有partition这个选项,有则mysql支持分区,没有的话,就可以升级一下mysql 实时监控一个命令执行情 ...
- 黄聪:mysql 存在该记录则更新,不存在则插入记录的sql
一条mysql教程 存在该记录则更新,不存在则插入记录的sql , ‘yourname') ON DUPLICATE KEY UPDATE auto_name='yourname' ON DUPLIC ...
- 理解Socket编程【转载】
“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览 ...
- NeHe OpenGL教程 第十一课:飘动的旗帜
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...