MFC中TAB Control的用法总结
单文档-Tab Control 控件的使用

利用Tab Control控件设计一个分页表,见下图1. 建立一个MFC类型的基于FormView的单文档工程TabTest。
2. 把一个Tab Control控件拖到主对话框中,主对话框的ID为IDD_TABTEST_FORM,Language设为:Chinese(P.R.C)。
Tab Control的ID为IDC_TAB1。
3. 通过ClassWizard的设置一个与Tab Control相关的变量m_tab,类型为CTabCtrl。
4.建立两个对话框资源,设置其Style为Child,Borden为None。
因为想要不带标题栏和工具栏的对话框,因此我选择的是Dialog 资源中的IDD_FORMVIEW型的对话框。
它们的ID分别为IDD_Page1_FORMVIEW和IDD_Page2_FORMVIEW。
5.通过ClassWizard分为别两个对话框资源建立两个类CPage1和CPage2。
并建立CPage1和CPage2对应的两个两个对象:在CTabTestView中增加两个变量m_page1和m_page2,类型分别为CPage1和CPage2型。
6.在View的初始化函数OnInitialUpdate()函数中把CPage1和CPage2与TabControl关联起来,设置初始页面,保存页面地址,代码如下:void CTab_testView::OnInitialUpdate(){CFormView::OnInitialUpdate();GetParentFrame()->RecalcLayout();ResizeParentToFit();//为TabControl增加两个页面m_tab.InsertItem(0,"标签1");m_tab.InsertItem(1,"标签2');//创建两个对话框m_page1.Create(IDD_Page1_FORMVIEW,&m_tab);m_page2.Create(IDD_Page2_FORMVIEW,&m_tab);//获得IDC_TABTEST客户区大小CRect rc;m_tab.GetClientRect(rc);//调整子对话框在父窗口中的位置rc.top += 20;rc.bottom -=60;rc.left +=1;rc.right -=2;//设置子对话框尺寸并移动到指定位置m_page1.MoveWindow(&rc);m_page2.moveWindow(&rc);//设置隐藏和显示m_page1.ShowWindow(true);m_page2.ShowWindow(false);//设置默认选项卡m_tab.setCurSel(0);}7.在CPage1对话框中添加一个static text控件和edit text控件,在CPage2对话框添加一个edit text控件。
TabControl 的用法

TabControl 收藏判断选中的选项卡(TabPage)(1)用TabControl 的SelectedTab属性if(tabControl1.SelectedTab == tabPage2)(2)用TabControl 的SelectedIndex 属性if(tabControl1.SelectedTab == 1)设置当前选项卡(TabPage)(1)用SelectTab 方法将指定的选项卡(TabPage)设置为当前的选择卡(TabPage)。
重载形式如下:TabControl.SelectTab (Int32)使具有指定索引的选项卡成为当前选项卡。
TabControl.SelectTab (String)使具有指定名称的选项卡成为当前选项卡。
TabControl.SelectTab (TabPage)使指定的TabPage 成为当前选项卡。
(2)DeselectTab 方法将指定的选项卡(TabPage)后面的选项卡成为当前选项卡(TabPage)。
重载形式如下:TabControl.DeselectTab (Int32)使具有指定索引的选项卡后面的选项卡成为当前选项卡。
TabControl.DeselectTab (String)使具有特定名称的选项卡后面的选项卡成为当前选项卡。
TabControl.DeselectTab (TabPage)使指定的TabPage 后面的选项卡成为当前选项卡。
TabControl 变更事件在TabControl 中的当前选项卡发生更改时,将按以下顺序发生下列事件。
DeselectingDeselectedSelectingSelected(1)Deselecting 事件在取消选择某个选项卡(TabPage)之前发生,使处理程序能够取消选项卡(TabPage)更改。
(2)Deselected 事件当取消选择选项卡(TabPage)时发生。
(3)Selecting 事件在取消选择某个选项卡(TabPage)之前发生,使处理程序能够取消选项卡(TabPage)更改。
cmfctabctrl的create函数 -回复

cmfctabctrl的create函数-回复题目:CMFCTabCtrl的Create函数详解引言:CMFCTabCtrl是MFC类库中常用的标签控件,可以在一个主窗口中创建多个标签页,并在不同标签页间切换显示不同内容。
其中,Create函数是CMFCTabCtrl类中的一个重要成员函数,用于创建并初始化标签控件。
在本文中,我们将一步一步详细解析CMFCTabCtrl的Create函数的用法,使读者能更好地理解和使用该函数。
I. 功能介绍CMFCTabCtrl的Create函数用于在指定的主窗口中创建一个标签控件,并进行初始化设置。
II. 函数原型BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, DWORD dwTabCtrlStyle = CMFCTabCtrl::STYLE_3D_SCROLLED, DWORD dwStyleEx = 0);III. 函数参数解析1. dwStyle:DWORD类型参数,指定标签控件的风格,例如CMFCTabCtrl::STYLE_3D_SCROLLED表示为带有滚动条的立体风格。
2. rect:RECT类型参数,指定标签控件的位置和大小,通过传入坐标值进行设置。
3. pParentWnd:CWnd*类型参数,指定父窗口的指针,即标签控件应该创建在哪个窗口中。
4. nID:UINT类型参数,指定标签控件的标识ID,用于唯一标识一个控件,可用于其他操作。
5. dwTabCtrlStyle:DWORD类型参数,指定标签控件特定的风格,例如STYLE_3D_SCROLLED表示带有滚动条的立体风格。
6. dwStyleEx:DWORD类型参数,指定标签控件的附加风格。
IV. 函数返回值Create函数返回一个BOOL类型值,表示创建标签控件的成功与否。
若成功则返回TRUE,否则返回FALSE。
VS2010和MFC编程入门之33(常用控件:标签控件Tab Control 下)

VS2010MFC编程入门之三十三(常用控件:标签控件TabControl 下)标签控件知识的上半部分,这里开始下半部分。
标签控件的创建MFC为标签控件的操作提供了CTabCtrl类。
与之前的控件类似,创建标签控件可以在对话框模板中直接拖入Tab Control,也可以使用CTabCtrl类的Create成员函数创建。
Create函数的原型如下:virtual BOOL Create(DWORD dwStyle,const RECT&rect,CWnd* pParentWnd,UINT nID);参数dwStyle为标签控件的风格,rect为标签控件的位置和大小,pParentWnd为指向标签控件父窗口的指针,nID指定标签控件的ID。
这里还是要具体说下dwStyle,下面列出了几种主要的控件风格:TCS_BUTTONS:标签(控件上部用来选择标签页的位置)外观为按钮风格,且整个控件周围没有边框。
TCS_FIXEDWIDTH :所有标签具有相同的宽度。
TCS_MULTILINE:标签以多行显示,如果需要,可以显示所有标签。
TCS_SINGLELINE:只显示一行标签,用户可以滚动着看其他标签。
TCS_TABS:标签以普通标签样式显示,且整个控件周围有边框。
如果想了解标签控件的所有风格,可以查阅MSDN。
CTabCtrl类的主要成员函数intGetCurSel( ) const;获取标签控件中当前选择标签的索引。
如果成功则返回选择标签的索引,否则返回-1。
BOOL GetItem(intnItem,TCITEM* pTabCtrlItem) const;获取标签控件中某个标签的信息。
参数nItem为标签索引,pTabCtrlItem为指向TCITEM结构体的指针,用来接收标签信息。
若获取成功返回TRUE,否则返回FALSE。
intGetItemCount( ) const;获取标签控件中标签的数量。
MFC-TabControl使用方法

MFC-TabControl使用方法1.新建一个MFC工程,取名MyTab,选择Dialogbased,然后Finish.2.删除对话框上默认添加的三个控件.添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST在MoreStyles里勾上Bottom.调速尺寸使其布满整个对话框,我这边TabControl的尺寸最后为164X203.在ClassWizard为其添加变量,变量名为m_tab.类型为CTabCtrl. 3.在对话框的初始化函数OnInitDialog里面添加如下代码: m_tab.InsertItem(0,"参数一"); //添加参数一选项卡m_tab.InsertItem(1,"参数二"); //添加参数二选项卡m_tab.InsertItem(2,"结果"); //添加结果选项卡4.在对话框资源里面添加三个对话框资源,ID分别命名为IDD_PARA1,IDD_PARA2,IDD_RESULT.字体为宋体,字号为9,style为Child,Border为None,宽度调整为161.再分别为其添加对应的基于CDialog类CPara1,CPara2,CResult.5.在CMyTabDlg类中添加三个成员变量m_para1,m_para2,m_result,分别是三个子对话框的实例.代码如下:CResultm_result; CPara2m_para2; CPara1m_para1; 6.在IDD_PARA1对话框上添加静态文本控件内容为"参数一"再在后面插入一个文本框控件,用ClassWizard将其关联为一个int型变量,名为m_nPara1; 在IDD_PARA2对话框上添加静态文本控件内容为"参数二"再在后面插入一个文本框控件,用ClassWizard将其关联为一个int型变量,名为m_nPara2; 在IDD_RESULT对话框上添加静态文本控件内容为"结果"再在后面插入一个文本框控件,用ClassWizard将其关联为一个int型变量,名为m_nResult; 7.为CPara1类添加成员函数intGetParaValue()代码如下: intCPara1::GetParaValue() ...{ returnm_nPara1; } 为CPara2类添加成员函数intGetParaValue()代码如下: intCPara2::GetParaValue() ...{ returnm_nPara2; } 为CResult类添加成员函数voidSetResultValue(intnResult)代码如下: voidCResult::SetResultValue(intnResult) ...{ m_nResult= nResult; } 8.在IDD_MYTAB_DIALOG对话框的初始化函数OnInitDialog里面添加如下代码: //关联对话框,并且将IDC_TABTEST控件设为父窗口m_para1.Create(IDD_PARA1,GetDlgItem(IDC_TABTEST)); m_para2.Create(IDD_PARA2,GetDlgItem(IDC_TABTEST)); m_result.Create(IDD_RESULT,GetDlgItem(IDC_TABTEST)); //获得IDC_TABTEST客户区大小CRectrs; m_tab.GetClientRect(&rs); //调整子对话框在父窗口中的位置rs.top+=1; rs.bottom-=60; rs.left+=1; rs.right-=2; //设置子对话框尺寸并移动到指定位置m_para1.MoveWindow(&rs); m_para2.MoveWindow(&rs); m_result.MoveWindow(&rs); //分别设置隐藏和显示m_para1.ShowWindow(true); m_para2.ShowWindow(false); m_result.ShowWindow(false); //设置默认的选项卡m_tab.SetCurSel(0);9.添加Tab Control控件的TCN_SELCHANGE事件响应函数OnSelchangeTabtest(NMHDR*pNMHDR,LRESULT*pResult),函数体代码如下:intCurSel=m_tab.GetCurSel(); switch(CurSel) ...{ case0:m_para1.ShowWindow(true); m_para2.ShowWindow(false); m_result.ShowWindow(false); break; case1:m_para1.ShowWindow(false); m_para2.ShowWindow(true);m_result.ShowWindow(false); break; case2: m_para1.ShowWindow(false); m_para2.ShowWindow(false); m_result.ShowWindow(true); break; default: ; }*pResult=0;10.在IDD_MYTAB_DIALOG对话框下面添加一个按钮,标题为"计算"为其添加事件响应函数,代码如下:m_para1.UpdateData(true); m_para2.UpdateData(true); m _result.SetResultValue(m_para1.GetParaValue()+m_para2.GetParaValue()) ; m_result.UpdateData(false);11.最后演示结果如下:12.这个小程序很简单,但是他说明了Tab Control控件的基本用法.用法2VC中的CTabCtrl用法与VB、Delphi的选项卡控件有很大的不同,每个属性页是用一个“窗体”(对话框)来实现,于是要为每个属性页对话框建类,还要关联、初始化……实在麻烦得多。
VS下tabcontrol使用方法(非常实用)

VS下tabcontrol使用方法(非常实用)1. 在Visual Studio 2005中,新建一个项目,选择MFC应用程序, 取名MyTab, 选择Dialog based(基于对话框), 然后Finish.2. 删除对话框上默认添加的三个控件. 添加Tab Control控件,右键选择“属性”,并设置ID为IDC_TABMAIN。
调速尺寸使其布满整个对话框. 选中Tab Control控件,右键选择“添加变量”,变量名为m_tabMain. 类型为CTabCtrl.3. 在CXXXDlg类中的对话框初始化函数OnInitDialog里面添加如下代码://添加选项卡m_tabMain.InsertItem(0,_T("选项卡1"));//“选项卡1”可更改,是sheet页的名字;m_tabMain.InsertItem(1,_T("选项卡2"));m_tabMain.InsertItem(2,_T("选项卡3"));4.在资源视图里的Dialog,点击"Dialog”右键,选择"插入Dialog”,插入三个Dialog,ID分别命名为IDD_DIALOG1, IDD_DIALOG2, IDD_DIALOG3(可根据具体Dialog的用途来命名). 每个Dialog的属性中,style为Child, Border为None, 宽度调整下. 再分别为其添加对应的基于CDialog类CDialog1, CDialog2, CDialog3.5. 在类视图中,点CMyTabDlg类右键,选择添加变量,依次添加三个成员变量m_para1, m_para2, m_para3(命名也随意,最好对应着类), 分别是三个子对话框的实例. 代码如下:CDialog1 m_para1;CDialog2 m_para2;CDialog3 m_para3;6. 在IDD_MYTAB_DIALOG对话框的初始化函数OnInitDialog里面添加如下代码://关联对话框,并且将IDC_TABMAIN控件设为父窗口m_para1.Create(IDD_DIALOG1,GetDlgItem(IDC_TABMAIN));m_para2.Create(IDD_DIALOG2,GetDlgItem(IDC_TABMAIN));m_para3.Create(IDD_DIALOG3,GetDlgItem(IDC_TABMAIN));//获得IDC_tabMain客户区大小CRect rs;m_tabMain.GetClientRect(&rs);//调整子对话框在父窗口中的位置,可以改动数值,使子窗体的大小合适;rs.top+=20;rs.bottom-=3;rs.left+=2;rs.right-=2;//设置子对话框尺寸并移动到指定位置m_para1.MoveWindow(&rs);m_para2.MoveWindow(&rs);m_para3.MoveWindow(&rs);//分别设置隐藏和显示m_para1.ShowWindow(true);m_para2.ShowWindow(false);m_para3.ShowWindow(false);//设置默认的选项卡m_tabMain.SetCurSel(0);7. 在资源视图中,右键Tab Control,选择“添加事件处理程序”,选择TCN_SELCHANGE事件,事件处理程序名称“OnTcnSelchangeTabmain”,这样就有了切换sheet页的响应函数OnSelchangeTabmain(NMHDR* pNMHDR, LRESULT* pResult) ,函数体代码如下:// TODO: 在此添加控件通知处理程序代码int CurSel = m_tabMain.GetCurSel();switch(CurSel){case 0:m_para1.ShowWindow(true);m_para2.ShowWindow(false);m_para3.ShowWindow(false);break;case 1:m_para1.ShowWindow(false);m_para2.ShowWindow(true);m_para3.ShowWindow(false);break;case 2:m_para1.ShowWindow(false);m_para2.ShowWindow(false);m_para3.ShowWindow(true);break;default:;}*pResult = 0;8.现在在类视图中,点根目录mytab,右键选择“生成”,应该是一个成功的。
MFC编程总结各种控件使用说明

MFC各种控件的使用说明把整数显示为时间格式的方法:Int minute=5; int sec=5;CString strTime;strTime.Format("%02d:%02d",minute,sec);GetDlgItem(IDC_STAT_DIS)->SetWindowText(strTime);定时器的使用方法:在函数BOOL CDingshiqiDlg::OnInitDialog(){SetTimer(1,1000,NULL);}添加语句SetTimer(1,1000,NULL);定时器1秒钟中断一次.然后添加消息WM_TIMER对应的消息函数:void CDingshiqiDlg::OnTimer(UINT nIDEvent){}播放系统声音的方法:在头文件添加这两句#include<mmsystem.h>#pragma comment (lib,"winmm.lib")然后调用函数: PlaySound("SystemStart",NULL,SND_ALIAS|SND_ASYNC);VC++6.0控件工具箱:2 图形控件(picture):常用于显示位图(Bitmap)和图标(Icon)3 静态文本(Static Text):MFC提供了CStatic类支持静态控件。
(1)更改该控件上字体的方法是:该控件的ID为IDC_STATIC1,IDC_STATIC2.CFont * f1;f1 = new CFont;f1 -> CreateFont( 25 , // nHeight15, // nWidth0 , // nEscapement0 , // nOrientationFW_BOLD, // nWeightFALSE , // TRUEbItalicFALSE, // bUnderline0 , // cStrikeOutDEFAULT_CHARSET, //ANSI_CHARSET nCharSetOUT_DEFAULT_PRECIS, // nOutPrecisionCLIP_DEFAULT_PRECIS, // nClipPrecisionDEFAULT_QUALITY, // nQualityDEFAULT_PITCH | FF_SWISS, // nPitchAndFamily_T( " 宋体" )); // lpszFacGetDlgItem(IDC_STATIC1)-> SetFont(f1);GetDlgItem(IDC_STATIC2)-> SetFont(f1);另一种改变字体大小的方法: 在函数外定义CStatic m_static;CFont font;m_static.SubclassDlgItem(IDC_STAT_DIS,this);LOGFONT log;GetObject(::GetStockObject(DEFAULT_GUI_FONT),sizeof(log),&log);log.lfHeight=300; //改log.lfWidth=120; //改log.lfCharSet=GB2312_CHARSET;lstrcpy(log.lfFaceName, _T("宋体"));font.CreateFontIndirect(&log);m_static.SetFont(&font);(2) 把整数显示在该控件的方法:IDC_STAT_DIS为控件IDInt minute=5,sec=5;CString strTime;strTime.Format("%02d:%02d",minute,sec);GetDlgItem(IDC_STAT_DIS)->SetWindowText(strTime);另外一种显示的方法:CStatic*pst=(CStatic *)GetDlgItem(IDC_STAT_DIS);pst->SetWindowText("00:00");4 编辑框(Edit Box):MFC提供了CEdit类支持编辑框控件。
MFC通用控件使用详解

PWIN98/95下演练VC5中的COMMON一族辽宁省铁岭市委办公室(112000)宋立波中文PWIN98/95之所以深受广大计算机用户的青睐,除其在32位多任务、多线程和系统稳固性等核心技术的重要改进之外,更主要的还是其优秀的用户交互界面。
这就给程序设计人员提出了新的课题,如何在自己开发的应用程序中充分利用WIN98/95支持的各种高级通用控制和视,这也是学习VC编程所必须掌握的基本内容,本文将通过实例来具体演练VC5中的这些控件,其中常用的COMMON一族主要成员包括:1.表头控制 Header Control2.图像列表控制 Image List3.列表控制和视 List Control&List View4.树控制和视 Tree Control&Tree View5.标签控制和视 Tab Control&Tab View6.工具条控制 Toolbar Control7.进度条控制 Progress Control8.滑动条控制 Slider Control9.旋转按钮控制 Spin Button Control10.状态条控制 Status Bar Control其中,绝大部分通用控制在MFC类库中都存在两种封装形式,即控制类和视类,控制类主要是供直接使用控制而提供的,而视类则是通过间接使用控制而提供的,视类可以更好地把控制类集成到MFC结构中,并且使用视类可以利用引用直接对嵌套在其中的控制进行各种操作。
两者在使用方法上没有太大区别,就拿列表控制类和视类来说,当创建列表视后可通过CListCtrl& ctrlList = GetListCtrl()成员函数取得视类引用ctrlList之后,就可以利用列表视的视函数对视进行各项操作(ctrlList.Add等)。
一、PWIN98/95下演练CHeadCtrl表头控制(CHeaderCtrl)通常应用在窗口中的文本或数据的列表之上。