CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

vc6.0 中TabControl控件的具体使用

楼主dg602(dg)2005-11-09 22:15:11 在 VC/MFC / 界面 提问

哪位大哥能提供一下vc6.0   中TabControl控件的基本使用方法啊,可以将其它的Dialog加入其中一个tab嘛,此时怎么传递Dialog中的数据啊 问题点数:30、回复次数:5Top

1 楼Mackz(在相互)回复于 2005-11-10 00:46:57 得分 0

创建选项卡   (TabControl)   控件  
   
  创建选项卡   (TabControl)   控件的方式取决于您是在对话框中使用该控件还是在非对话框窗口中创建它。  
   
  直接在对话框中使用   CTabCtrl    
   
  在对话框编辑器中,将选项卡   (TabControl)   控件添加到对话框模板资源中。指定其控件   ID。    
  用添加成员变量向导添加具有   Control   属性且类型为   CTabCtrl   的成员变量。可以用该成员调用   CTabCtrl   成员函数。    
  在对话框类中为需要处理的任何选项卡   (TabControl)   控件通知消息映射处理函数。有关更多信息,请参见将消息映射到函数。    
  在   OnInitDialog   中,设置   CTabCtrl   的样式。    
  在非对话框窗口中使用   CTabCtrl    
   
  在视图或窗口类中定义此控件。    
  调用此控件的   Create   成员函数,可能在   OnInitialUpdate   中,也可能与父窗口的   OnCreate   处理函数一样早(如果正在创建此控件的子类)。设置此控件的样式。    
  创建了   CTabCtrl   对象后,可以设置或清除下列扩展样式:    
   
  TCS_EX_FLATSEPARATORS       选项卡   (TabControl)   控件将在选项卡项之间绘制分隔符。该扩展样式仅影响样式为   TCS_BUTTONS   和   TCS_FLATBUTTONS   的选项卡   (TabControl)   控件。默认情况下,用   TCS_FLATBUTTONS   样式创建选项卡   (TabControl)   控件将设置该扩展样式。    
  TCS_EX_REGISTERDROP       在将对象拖动到控件中的选项卡项上时,选项卡   (TabControl)   控件生成   TCN_GETOBJECT   通知消息以请求放置目标对象。    
  注意       若要接收   TCN_GETOBJECT   通知,必须通过调用   AfxOleInit   初始化   OLE   库。  
  创建了控件后,可以通过分别调用   GetExtendedStyle   和   SetExtendedStyle   成员函数来检索和设置这些样式。  
   
  例如,用下列代码行设置   TCS_EX_FLATSEPARATORS   样式:  
   
  DWORD   dwExStyle=   m_tabCtrl.GetExtendedStyle();  
  m_tabCtrl.SetExtendedStyle(dwExStyle   |   TCS_EX_FLATSEPARATORS);  
  用下列代码行从   CTabCtrl   对象中清除   TCS_EX_FLATSEPARATORS   样式:  
   
  DWORD   dwExStyle=   m_tabCtrl.GetExtendedStyle();  
  m_tabCtrl.SetExtendedStyle(dwExStyle   &   ~TCS_EX_FLATSEPARATORS);  
  这将移除出现在   CTabCtrl   对象按钮之间的分隔符。  
   
  请参见  
  使用   CTabCtrl   |   Windows   公共控件和   MFC   类  
   
   
  向选项卡   (TabControl)   控件添加选项卡  
   
  创建选项卡   (TabControl)   控件   (CTabCtrl)   后,需要多少选项卡,就添加多少。  
   
  添加选项卡项    
   
  准备   TCITEM   结构。    
  调用   CTabCtrl::InsertItem   以传递该结构。    
  对其他选项卡项重复步骤   1   和   2。    
  有关更多信息,请参见   Platform   SDK   中的创建选项卡   (TabControl)   控件。  
   
  请参见  
  使用   CTabCtrl   |   Windows   公共控件和   MFC   类  
   
   
  处理选项卡   (TabControl)   控件通知消息  
   
  当用户单击选项卡或按钮时,选项卡   (TabControl)   控件   (CTabCtrl)   向其父窗口发送通知消息。如果要进行某种响应,请处理这些消息。例如,当用户单击选项卡时,您也许想在显示选项卡之前在页面上预设控件数据。  
   
  处理来自视图或对话框类中的选项卡   (TabControl)   控件的   WM_NOTIFY   消息。基于正在处理的通知消息,用“属性”窗口创建带   switch   语句的   OnChildNotify   处理函数。有关选项卡   (TabControl)   控件可以发送到其父窗口的通知的列表,请参见   Platform   SDK   中的选项卡   (TabControl)   控件参考的   Notifications   一节。  
   
  请参见  
  使用   CTabCtrl   |   Windows   公共控件和   MFC   类  
   
  Top

2 楼niefuhua(阳光)回复于 2005-11-10 08:36:46 得分 0

Mackz(在相互)   牛必,每次都在我前面!:)Top

3 楼lixiaosan(小三)回复于 2005-11-10 08:46:55 得分 30

1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab   Control   控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,  
  将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl  
  2、创建两个新的对话框资源,其属性作如下修改:  
                                  Border:none   //边界为空,这样它就没了标题栏  
                                  Style   :Child   //   这样这个模板就可以当作另一个窗口的子窗口了。  
        其它如果没有必要,就不用改了。  
                  在上面加一些控件什么的,具体操作跟普通对话框没有区别。  
                  完成后从这两个对话框模板生成两个新的对话框类。  
  3、在主对话框中为新添加进来的两个类增加两个变量:  
                                  如:CDialog1   m_mm1;  
                                                  CDialog2   m_mm2;  
  4、在主对话框的OnInitDialog()函数中添加如下类似的代码:  
                  TCITEM   item;  
                  item.mask   =   TCIF_TEXT;  
                  item.pszText   =   "第一页";  
   
                  m_tabctrl.InsertItem   (0,&item);  
                  item.pszText   ="第二页";  
                  m_tabctrl.InsertItem   (1,&item);  
   
                  m_mm1.Create   (IDD_DIALOG1,&m_tabctrl);  
                  m_mm2.Create   (IDD_DIALOG2,&m_tabctrl);  
   
                  m_mm1.SetWindowPos   (NULL,10,30,400,100,SWP_SHOWWINDOW);  
                  m_mm2.SetWindowPos   (NULL,10,30,400,100,SWP_HIDEWINDOW   );  
                  解释如下:  
                  两个InsertItem函数的调用是为了给标签控件增加两个标签页面,文本是标题。  
                  SetWindowPos()函数设置这两个对话框在Z顺序中的位置,显示或隐藏状态.。  
  5、在主对话中为标签控件添加一个标签选择改变(TCN_SELCHANGE)的控件通知消息,以便在用户选择标签时通知主对话框。在主对话框的编辑界面右击标签控件  
  ,选择添加一个事件可以完成这个操作。  
  在事件处理中添加如下代码,如下例:  
  void   CtabdialogDlg::OnTcnSelchangeTab1(NMHDR   *pNMHDR,   LRESULT   *pResult)  
  {  
                  CRect   r;  
                  m_tabctrl.GetClientRect   (&r);  
   
                  switch(m_tabctrl.GetCurSel())  
                  {  
                  case   0:  
                  m_mm1.SetWindowPos   (NULL,10,30,r.right   -20,r.bottom   -40,SWP_SHOWWINDOW);  
                  m_mm2.SetWindowPos   (NULL,10,30,r.right   -20,r.bottom   -40,SWP_HIDEWINDOW   );  
                  break;  
                  case   1:  
                  m_mm1.SetWindowPos   (NULL,10,30,r.right   -20,r.bottom   -40,SWP_HIDEWINDOW);  
                  m_mm2.SetWindowPos   (NULL,10,30,r.right   -20,r.bottom   -40,SWP_SHOWWINDOW   );  
                  break;  
                  }  
                  *pResult   =   0;  
  }  
  要想知道用户选择那个标签页,要通过m_tabctrl.GetCurSel()   函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面  
  的尺寸。  
  Top

4 楼lineuser(蓝冰)回复于 2006-06-08 10:13:56 得分 0

markTop

5 楼caplee(老光)回复于 2006-06-09 17:14:33 得分 0

markTop

相关问题

  • vc中不能使用的active控件?
  • VC能使用MSCOM控件吗?
  • 请教VC中CTreeCtrl控件的使用
  • 怎样在VC中使用commondialog 控件?
  • VC中如何使用这些控件?
  • VC中怎么使用控件组?
  • 在VC++中如何使用ActiveX控件?
  • vc++控件的使用!!!!!!!!!!!!!!!!!!55分
  • VC中使用控件的问题
  • 关于vc里使用MSCOMM控件

关键词

  • 控件
  • 选项
  • 函数
  • 样式
  • tcs
  • 消息
  • tabcontrol
  • 对话框
  • ctabctrl
  • tabctrl

得分解答快速导航

  • 帖主:dg602
  • lixiaosan

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo