MFC标签页控件的使用

MFC标签页控件的使用

1、在对话框中添加一个标签页控件,并为此控件关联一个CTabCtrl类变量m_tabctrl.

2、创建若干个对话框资源作为标签页控件的标签。

修改两个属性:

Border:    none   //
边界为空,这样它就没了标题栏

Style:      Child   //
这个模板就可以当作另一个窗口的子窗口了在对话框的初始化函数

3,在对话框的初始化函数OnInitDialog中, 添加初始化标签页控件的代码

3.1)  // 添加标签页,并设定标签名
   
 m_tabctrl.InsertItem(0, _T("XXX"));
    
m_tabctrl.InsertItem(1, _T("XXX"));
   
 m_tabctrl.InsertItem(2, _T("XXX"));
   
 m_tabctrl.InsertItem(3, _T("XXX"));

3.2)  //
new若干个对话框对象,为并其添加之前定义的对话框模板,设定其父窗口为m_tabctrl

// new CDialog 对象

m_pDlgArray[0] = new CBookInfo;

m_pDlgArray[1] = new CReaderInfo;

m_pDlgArray[2] = new CBorrowInfo;

m_pDlgArray[3] = new CManagerInfo;

3.3)  // 为CDialog对象添加对话框模板

m_pDlgArray[0]->Create(IDD_BOOK_INFO,
&m_tabctrl);

m_pDlgArray[1]->Create(IDD_READER_INFO,
&m_tabctrl);

m_pDlgArray[2]->Create(IDD_BORROW_INFO,
&m_tabctrl);

m_pDlgArray[3]->Create(IDD_MANAGER_INFO,
&m_tabctrl);

3.4)  // 设置对话框在标签控件中的位置

CRect rc;

m_tabctrl.GetClientRect(&rc);

rc.top  += 20;

rc.left  += 5;

rc.bottom -= 5;

rc.right -= 5;

m_pDlgArray[0]->MoveWindow(&rc);

m_pDlgArray[1]->MoveWindow(&rc);

m_pDlgArray[2]->MoveWindow(&rc);

m_pDlgArray[3]->MoveWindow(&rc);

3.5)  // 设置缺省标签页

m_pDlgArray[m_nCurSel]->ShowWindow(SW_SHOW);

m_Tab.SetCurSel(m_nCurSel);

4.为标签控件添加TCN_SELECHANGE消息的响应函数

void CLibraryMSDlg::OnTcnSelchangeTab(NMHDR *PNMHDR, LRESULT *pResult)

{

int nNewSel = m_tabctrl.GetCurSel();

if (m_nCurSel != nNewSel)

{

m_pDlgArray[m_nCurSel]->ShowWindow(SW_HIDE);

m_pDlgArray[nNewSel]->ShowWindow(SW_SHOW);

m_nCurSel = nNewSel;

}

return;

}

时间: 2024-10-29 19:10:22

MFC标签页控件的使用的相关文章

MFC之ComboBox控件

添加内容 ComboBox_AddString(hwndCtl,lpsz) hwndCtl为此组合框的句柄,lpsz为需要添加的字符串,组合框不能直接通过id添加内容,所以需要得到这个控件的句柄,还得使用GetDlgItem()函数. 举例: HWND hwndCombo1 = GetDlgItem(hwnd,IDC_C1); //建立一个组合框,ID可以设置为IDC_C1,然后通过GetDlgItem获取这个组合框的句柄 //如果无法正常显示,需要调整此组合框的最大显示范围,在向下箭头上出现上

VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网上发表相关内容的朋友们.) ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行.控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件.这里控件容器就是

[VC/MFC]虚拟列表控件

[VC/MFC]虚拟列表控件 一.什么是虚拟列表控件 虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件.. 二.为什么使用虚拟列表控件 我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示的数据插入列表中,之后我们就不必关心数据在哪里了,这是因为控件自己开辟了内存空间来保存这些数据.现在假设我们要显示一个数据库,里面的信息量很大,有几十万条记录.通常有两种方法解决这个问题:1是仅仅在ListCtrl中插入少量的数据,比如100个,然后通过[上一页][下一

基于wince的MFC Tab Control控件的使用

1,先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,声明一个CTabCtrl变量: CTabCtrl m_tab; 变量m_tab用来与对话框中的Tab Control控件交互,为此要在DoDataExchange函数中加入DDX_Control语句: 1 //{{AFX_DATA_MAP(CTABDlg) 2 DDX_Control(pDX, IDC_TAB, m_tab); 3 //}}AFX_DATA_MAP IDC_

Swift - 页控件(UIPageControl)的用法

使用页控件可以用来展示多个桌面.比如很多应用第一次登陆时,会在开始页面使用页控件来介绍功能,通过左右滑动来切换页. 通常我们使用UIPageControl和UIScrollView相互结合来实现多页切换,滑动页面时页控件标签(即页面下方的小白点)会更新到对应的页面.而直接点击页标签时,滚动条也会滚到相应的页. (UIPageControl的当前页小圆点和非当前小圆点的颜色是可以设置的,同时如果只有一页的时候也可以选择是否显示圆点) 效果图如下:    代码如下: 1 2 3 4 5 6 7 8

MFC动态创建控件及添加消息响应

MFC动态创建控件及添加消息响应 分类: 控件技术2013-01-24 14:12 7020人阅读 评论(0) 收藏 举报 转载地址:http://blog.csdn.net/luy3728000/article/details/8193918 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放

[activeX]VC2005开发MFC ActiveX ocx控件全过程[转]

ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行.控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件.这里控件容器就是浏览器,用户不需要通过浏览器调用控件的属性或方法.因此,开发面向Web的ActiveX控件比开发桌面的控件还要简单些,所复杂的是如何将该控件很好地嵌入主页,使用户能正常浏览.下面介绍这个问题. 一.        创建MFC

推荐4个Android引导页控件

Guideshow 快速实现引导页, 2015-08-03 更新 CircleIndicator 一个轻量级的viewpager指示器 ,类似于nexus5 启动器的效果 2015-08-02 更新 XhsWelcomeAnim 小红书欢迎引导第二版 2015-07-10 更新 AppIntro 非常简洁.漂亮的引导页控件,使用简单 2015-07-07 更新 http://www.see-source.com/androidwidget/list.html

标签流控件的实现

前言 原文地址 在我们的开发过程中,常常会遇到这样的场景: 我们展示一种物品或者为某一事物添加一些标签.比如说,我们买一件衣服,可以有以下几种标签:杰克琼斯,男士,运动等等. 但我们这时候可能并不知道标签的数量和每个标签的文字,所以,我们在开发过程中,需要实现下面的功能: 我们从服务器端获取标签的信息,然后将其动态的添加到布局中,并且我们能够得到我们选择容器的信息,并将选中的标签重新返回至服务器. 因此,我们必须计算出每个标签(Button)的长度,并且将其与它的容器做比较,如果容器剩余的长度并