CTabCtrl
转载至 http://blog.csdn.net/jacklam200/archive/2008/08/01/2753797.aspx
一、在对话框视图中加入CTabCtrl控件
资源ID:IDC_TAB,变量名:m_Tab
二、在OnInitDialog()中加入以下代码:
m_Tab.InsertItem(0,"窗口1");
m_Tab.InsertItem(1,"窗口2");
// 创建子窗口实例(事先创建好),将父窗口设为m_Tab
// CChileDlg1 m_dlgChile1;
// CChileDlg2 m_dlgChile2;
m_dlgChile1.Create(IDD_DIALOG_CHILD1,GetDlgItem(IDC_TAB));
m_dlgChile2.Create(IDD_DIALOG_CHILD2,GetDlgItem(IDC_TAB));
// 将子窗口显示在m_Tab范围内
CRect rs;
m_Tab.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4;
m_dlgChile1.MoveWindow(rs);
m_dlgChile2.MoveWindow(rs);
// 默认显示第一个子窗口
m_Tab.SetCurSel(0);
m_dlgChile1.ShowWindow(TRUE);
示例代码
view plaincopy to clipboardprint?
Item.mask = TCIF_TEXT;
int nPages = 2; //3个页面
for(int nN = 0; nN < nPages; nN++)
{
switch(nN)
{
case 0:
m_zipDlg.Create(IDD_ZIP,GetDlgItem(IDC_TAB1));
break;
case 1:
m_unZipDlg.Create(IDD_UNZIP,GetDlgItem(IDC_TAB1));
break;
}
}
for(int nN = 0; nN < nPages; nN++)
{
switch(nN)
{
case 0:
Item.pszText=_T("ZIP");
break;
case 1:
Item.pszText=_T("UNZIP");
break;
}
m_tab.InsertItem(nN,&Item);
}
m_tab.SetCurSel(0);
m_zipDlg.ShowWindow(TRUE);
Item.mask = TCIF_TEXT;
int nPages = 2; //3个页面
for(int nN = 0; nN < nPages; nN++)
{
switch(nN)
{
case 0:
m_zipDlg.Create(IDD_ZIP,GetDlgItem(IDC_TAB1));
break;
case 1:
m_unZipDlg.Create(IDD_UNZIP,GetDlgItem(IDC_TAB1));
break;
}
}
for(int nN = 0; nN < nPages; nN++)
{
switch(nN)
{
case 0:
Item.pszText=_T("ZIP");
break;
case 1:
Item.pszText=_T("UNZIP");
break;
}
m_tab.InsertItem(nN,&Item);
}
m_tab.SetCurSel(0);
m_zipDlg.ShowWindow(TRUE);
三、响应m_Tab的TCN_SELCHANGE消息,实现切换页面功能
void CMyDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{
int nCurSel = m_Tab.GetCurSel();
switch(nCurSel)
{
case 0: // 显示子窗口1
m_dlgChile1.ShowWindow(TRUE);
m_dlgChile2.ShowWindow(FALSE);
break;
case 1: // 显示子窗口2
m_dlgChile1.ShowWindow(FALSE);
m_dlgChile2.ShowWindow(TRUE);
break;
}
*pResult = 0;
}
------------------------------------------------------------------------------------------------------
windows mobile的
PROPSHEETHEADER psh;
PROPSHEETPAGE psp[2];
int i = 0;
memset(&psh, 0, sizeof(PROPSHEETHEADER));
for(i = 0; i < 2; i++)
{
psp[i].dwSize = sizeof(PROPSHEETPAGE);
psp[i].dwFlags = PSP_DEFAULT | PSP_USETITLE;
psp[i].hInstance = g_hInst;
psp[i].lParam = (LPARAM)hWnd;
}
psp[0].pszTitle = TEXT("压缩文件");
psp[0].pszTemplate = MAKEINTRESOURCE(IDD_ZIPFILE);
psp[0].pfnDlgProc = (DLGPROC)ZipDlgProc;
psp[1].pszTitle = TEXT("解压文件");
psp[1].pszTemplate = MAKEINTRESOURCE(IDD_UNZIP);
psp[1].pfnDlgProc = (DLGPROC)UnzipDlgProc;
psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_MAXIMIZE;
psh.hwndParent = hWnd;
psh.hInstance = g_hInst;
//psh.pszCaption = TEXT("Prop Sheet Title");
psh.nPages = 2;
psh.nStartPage = 0;
psh.ppsp = psp;
psh.pfnCallback = 0;
i = PropertySheet(&psh);
CTabCtrl的更多相关文章
- 在CTabCtrl上动态创建CListCtrl控件
m_List.Create(WS_OVERLAPPED|WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_AUTOARRANGE|LVS_SHOWSELALWAYS|LVS_EDI ...
- CTabCtrl的使用
1.在主窗口中定义一个CtabCtrl,添加变量m_tabctrl; 2.添加两个子窗口IDD_ONE_DIALOG,IDD_TWO_DIALOG(新建对话框,然后双击界面添加头文件和cpp),属性为 ...
- CTabCtrl - 如何使用TabCtrl控件
CTabCtrl - 如何使用TabCtrl控件 建立一个基于对话框的MFC应用程序TabCtrlTest Step 1:在资源视图中,新建对话框资源,资源ID:IDD_TabCtrlExample_ ...
- mfc CTabCtrl
知识点: CTabCtrl常用属性 CTabCtrl类常用成员函数 CTabCtrl代码示例 一.CTabCtrl控件属性 Bottom:底部样式 Vertical:垂直样式 与Bottom结合使用, ...
- MFC控件CTabCtrl关联变量
1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,将该控件绑定一个变量 用两种方法: 1 ) 自己定义成员变量 CTabCtr ...
- CTabCtrl控件标签的相关设置
原文链接: http://blog.csdn.net/happyhell/article/details/6012177 1. 获得CTabCtrl标签高度:CRect rc; CTabCtrl *p ...
- duilib各种布局的作用,相对布局与绝对布局的的意义与用法
大多数刚使用duilib的朋友时候非常依赖duilib自带的设计器,用他可以拖拉控件,可视化的做出自己想要的界面.可是用一段时间就会发现原带的设计器有很多bug,时不时会崩溃,支持的控件数量有限,属性 ...
- mfc ui3
引用:http://www.cnblogs.com/rainbowzc/archive/2010/06/02/1749872.html 本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者.读者 ...
- PeCheck
早上起来看到这个代码 整理一下 // PETableDlg.cpp : 实现文件 // #include "stdafx.h" #include "PECheck.h& ...
随机推荐
- nefu 1029 字符串
Description 给定一个字符串,现在要你从这个字符串中找到第一个只出现一次的字符 ,很简单吧! 快敲代码,动作! Input 多组输入,每行一个字符串(小写字母a~z)字符串长度不超过50 O ...
- chrome 常用快捷操作
Chrome窗口和标签页快捷键: Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+N 在隐身模式下打开新窗口 Ctrl+O,然后选择文件,在谷歌浏览器中打开计算机上的文件 ...
- 自定义AccessDeniedHandler
在Spring默认的AccessDeniedHandler中只有对页面请求的处理,而没有对Ajax的处理.而在项目开发是Ajax又是我们要常用的技术,所以我们可以通过自定义AccessDeniedHa ...
- 给EditText设置边框
布局文件中加入background属性: <EditText android:layout_width="200dp" android:layout_height=" ...
- vs2010使用C
html, body { font-size: 15px; } body { font-family: Helvetica, "Hiragino Sans GB", 微软雅黑, & ...
- 使用固件库操作STM32F4时的必要配置(转)
源:使用固件库操作STM32F4时的必要配置 使用STM32F4的固件库时,默认的晶振为25Mhz晶振,因此需要做一定的修改.之前因为一直没有注意这个问题,我捣腾了许久,发现工作时钟总是不对,查阅了一 ...
- MSG 结构
MSG 消息结构 在 Windows 程序中,消息是由 MSG 结构体来表示的. 结构原型: typedef struct tagMSG { HWND hwnd; UINT message; ...
- 多线程junit单元测试
junit中测试完成后会进行jvm退出,而不是线程退出,所以任一线程退出都会导致测试结束,junit想进行多线程测试需要进行另外包装,网上看到一个投机取巧的例子还不错,贴上我的测试代码(代码中我需要测 ...
- Spring Boot 系列教程7-EasyUI-datagrid
jQueryEasyUI jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要 ...
- 【HDU 5833】Zhu and 772002(异或方程组高斯消元讲解)
题目大意:给出n个数字a[],将a[]分解为质因子(保证分解所得的质因子不大于2000),任选一个或多个质因子,使其乘积为完全平方数.求其方法数. 学长学姐们比赛时做的,当时我一脸懵逼的不会搞……所以 ...