MFC控件编程:Tab Control

Tab控件的使用

1 插入Tab控件的数据项(标签)

CTabCtrl::InsertItem

2 以Tab控件为父窗口创建对话框

3 调整对话框大小

4 在Tab控件的SELCHANGE消息处理函数中,根据当前选项的索引设置对话框的显示状态。

新建一个基于对话框的工程,拖放一个Tab Control控件,Ctrl+W 为之绑定一个控件变量m_wndTabCtrl

插入两个对话框资源做为标签页面,注意设置它们的样式为:child 和 无边框

双击对话框资源为他们添加相关类,父类使用默认CDialog即可

这里类名为CDialog1 和 CDialog2

来到猪对话框类添加刚新建的对话框类的头文件,然后添加两个该类型的成员变量:

   CDialog1 m_dlg1;
   CDialog2 m_dlg2;

然后来到主对话框的OnInitDialog函数中添加创建代码,注意两个对话框成员创建时要以主对话框为父类创建。

代码如下:

BOOL CTabCtrlDlg::OnInitDialog()
{
        ............................................

	// TODO: Add extra initialization here
	// 为Tab控件添加标签
         m_wndTab.InsertItem (0, "Tab1");
	m_wndTab.InsertItem (0, "Tab2");
	// 以Tab控件为父窗口创建两个对话框
	m_dlg1.Create (IDD_DIALOG1, this);
	m_dlg2.Create (IDD_DIALOG2, this);
	// 显示第一个对话框
	m_dlg1.ShowWindow (SW_SHOW);
	// 调整对话框大小
	// 获取Tab控件的大小
	CRect rt;
	m_wndTab.GetClientRect (&rt);
	rt.top += 35;
	rt.left += 25;
	rt.right -= 1;
	rt.bottom -= 1;
	// 设置每个对话框的大小
	m_dlg1.MoveWindow (&rt);
	m_dlg2.MoveWindow (&rt);
        // 显示第一个对话框
        m_dlg1.ShowWindow (SW_SHOW);
	return TRUE;  // return TRUE  unless you set the focus to a control
}

当然,为了能让便签页具备切换的功能,给Tab控件添加TCN_SELCHANGE消息处理

void CMFCTabCtrolDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
	// TODO: Add your control notification handler code here
	// 获取当前选择项
	int nItem = m_wndTabCtrl.GetCurSel ();
    switch (nItem)
	{
	case 0:
		m_dlg1.ShowWindow (SW_SHOW);
		m_dlg2.ShowWindow (SW_HIDE);
		break;
	case 1:
		m_dlg2.ShowWindow (SW_SHOW);
		m_dlg1.ShowWindow (SW_HIDE);
		break;
	}

	*pResult = 0;
}

MFC控件编程:Tab Control

时间: 2024-11-07 01:59:04

MFC控件编程:Tab Control的相关文章

MFC控件编程:旋转按钮、进度条和滑块控件

旋转按钮(微调按钮) : 对应的控件类是CSpinButtonCtrl 进度条:对应的控件类是CProgressCtrl 滑块:对应的控件类是CSliderCtrl 对这三个控件的操作都是同过与之相关联的控件类完成的,并且这三个控件有极大的相似性,故这里放到一起 先认识下: Spin:            Progress:             Slider: 常用函数: SetRange()/GetRange(); // 设置.获取控件表示的范围 /* 设置控件的增量(步长) */ CS

MFC控件编程之复选框单选框分组框

MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1.单选框必须设置分组. 在属性中设置. 设置为True 2.如果有两个单选框那么TAB 顺序必须紧邻 VS中设置单选框TAB顺序 1,首先设置分组状态 因为设置分组.所以需要指定TAB 按键顺序.也就是必须连着. 设置一个即可. 2.设置TAB顺序 快捷键Ctrl + d 只需要点击控件则会自动设置顺

MFC控件编程之鼠标消息

MFC控件编程之鼠标消息 在MFC中鼠标消息.键盘消息我们很常用.所以说一下. 鼠标消息分为客户区消息.跟非客户区消息. 一丶客户区消息 我们可以处理消息.来进行我们相应的函数即可. MFC添加消息的话.可以自己在消息映射表中添加 .可以自己使用工具直接添加. 消息映射表添加 学习过MFC原理的应该知道.这里可以添加消息. 自己可以手动添加.我们也可以使用向导来添加. void CCDCDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO

MFC 控件编程之水平滚动条跟垂直滚动条

MFC 控件编程之水平滚动条跟垂直滚动条 一点水平滚动条的操作 首先在操作滚动条的时候.我们要知道滚动条的一些属性. 比如我们要设置 最大值 最小值. 以及每次递增的值是多少.都要设置. 所有就有一个结构.专门存储了滚动条信息. 而我们在对话框一启动就要进行控件初始化.下方看下结构. typedef struct tagSCROLLINFO { UINT cbSize; 自身大小 UINT fMask; 滚动条的范围.左边->右边方式. int nMin; 滚动条最小值 int nMax; 滚动

在MFC中改变控件的TAB顺序

在MFC界面中,控件的TAB顺序如果乱了,不合理,可能会使界面出现意料之外的显示. 例如,在用Spin Control来对Edit Control内的值进行增减时,如果Edit Control.Spin Control及其它控件的TAB顺序不对,则可能使控件文本的显示不正确. Spin Control 的属性 Auto Buddy,与控件的TAB顺序有关.需确保Edit Control的TAB顺序比Spin Control的TAB顺序小一个值. 进入资源视图,打开对话框界面,用快捷键ctrl +

VS2010/MFC设置对话框控件的Tab顺序

设置对话框控件的Tab顺序 前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但是还有个遗留的小问题,就是对话框控件的Tab顺序问题. 运行加法计算器程序,显示对话框后不进行任何操作,直接按回车,可以看到对话框退出了.这是因为“退出”按钮是Tab顺序为1的控件,也就是第一个接受用户输入的控件.但是按照我们的输入习惯,应该是被加数的编辑框首先接受用户输入,然后是加数编辑框

[MFC] 梳理一个简单的图片处理桌面软件中用到的MFC控件技巧

 前言 前些天应好友之拖,帮忙设计一个简单的图像处理的小软件.朋友把核心算法封装好了,但是是用openCV类似于console的编程环境,要我在此基础上改成MFC桌面程序.下图是做成之后的效果: 我是两年前稍微学了点MFC的知识,这两年中基本没有涉及,因为诸多相同的需求都可以用C#来搞定.这个本来也是想用C#来弄,可是我朋友用了openCV的相关函数封装了核心的“美颜算法”,我就只好重温经典了! 本文只涉及开发该小软件中与MFC控件相关的操作技巧,不提供朋友的“美颜算法”,还请各位见谅! 工程中

基于浏览器的文档处理控件TX Text Control .NET Server for WP

TX Text Control .NET Server for WPF控件为用于ASP.NET服务器环境提供一个完全可编程的文字处理引擎,并且包含一个WPF客户端版本 具体功能: 合并Microsoft Word模板,生成打印就绪的PDF文件 在浏览器中以所见即所得模式编辑处理文档 从同一个文档的每一页中生成图片或meta文件 使用来自不同源的数据从零开始通过编程生成文档 在所有支持的格式之间转换文档 完全独立于 Microsoft Word, Adobe Acrobat,及其他第三方软件 一台

MFC控件随对话框大小改变而改变

这也是我项目中碰到的问题,要让对话框中的控件随着对话框大小的变化进行自动调整,一般的做法是在WM_SIZE的响应函数中对所有的控件用MoveWindow()或者SetWindowPos()设置其变化比例. 但是由于需要自己计算,并且还有各种系统引起的情况,比如WIN7里有个选项"拖动时显示窗口内容",选中与不选中导致对话框内容显示完全不一样,选中时错误,不选正确,确实让人头大. 如EasySize是一个很好解决方案,用一些宏封装了内部的实现机制,使用起来方便快捷.原文地址:http:/