VC++之Tab控件

转载 2007年09月20日 11:32:00
Tab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格:

  TCS_BUTTONS 使用按钮来表示页选择位置

  TCS_MULTILINE 分行显示页选择位置

  TCS_SINGLELINE 只使用一行显示页选择位置

  在控件创建后必需向其中添加页面才可以使用,添加页面的函数为:

  BOOL InsertItem( int nItem, LPCTSTR lpszItem );nItem为位置,从零开始,lpszItem为页选择位置上显示的文字。如果你希望在页选择位置处显示一个图标,你可以调用BOOL InsertItem( int nItem, LPCTSTR lpszItem, int nImage );nImage指明所使用的图片位置。(在此之前必须调用CImageList * SetImageList( CImageList * pImageList );设置正确的ImageList)

  

  此外CTabCtrl还提供了一些函数用于得到/修改控件的状态。

  int GetCurSel( )/int SetCurSel( int nItem );用于得到/设置当前被选中的页位置。

  BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( );用于删除指定/所有页面。

  void RemoveImage( int nImage );用于删除某页选择位置上的图标。

  

  属性页控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn ),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处理函数,函数的原型如同void OnXXXTab(NMHDR* pNMHDR, LRESULT* pResult),其中pNMHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值和对应的数据结构为:

  

  TCN_SELCHANGE 在当前页改变后发送,所用结构:NMHDR

  TCN_SELCHANGING 在当前页改变时发送可以通过返回TRUE来禁止页面的改变,所用结构:NMHDR

  

  一般来讲在当前页发生改变时需要隐藏当前的一些子窗口,并显示其它的子窗口。下面的伪代码演示了如何使用属性页控件:

  

  CParentWnd::OnCreate(...)

  {

   m_tab.Create(...);

   m_tab.InsertItem(0,"Option 1");

   m_tab.InsertItem(1,"Option 2");

   Create a edit box as the m_tab's Child

   Create a static box as the m_tab's Child

   edit_box.ShowWindow(SW_SHOW); // edit box在属性页的第一页

   static_box.ShowWindow(SW_HIDE); // static box在属性页的第二页

  }

  void CParentWnd::OnSelectChangeTab(NMHDR* pNMHDR, LRESULT* pResult)

  {//处理页选择改变后的消息

   if(m_tab.GetCurSel()==0)

   {//根据当前页显示/隐藏不同的子窗口

   edit_box.ShowWindow(SW_SHOW);

   static_box.ShowWindow(SW_HIDE);

   }

   else

   {//

   edit_box.ShowWindow(SW_HIDE);

   static_box.ShowWindow(SW_SHOW);

   }

  } 
 

相关文章推荐

VC++ Tab Control控件的使用

网上介绍使用Tab Control控件,好像说的都不是很详细, 我一小菜这边随便说说, 见笑.1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.2. 删除...

VC++2008如何用tab控件实现属性页

在VC编程中tab控件是个很有用的控件,用它可以来实现如下图所示的属性页: 每个属性页对应着一个子页面,不同的子页面实现不同的功能,这便产生了一个问题,每个子页面上可能会有许多控件,这样各个控件之间...
  • cghver
  • cghver
  • 2011-07-29 21:16
  • 3942

VC++ Tab Control控件的使用

http://blog.csdn.net/glldc/article/details/2667451   1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Fini...

VC++MFC TAB控件的使用范例

  • 2011-11-25 09:05
  • 6.84MB
  • 下载

如何控制 VC 中控件间的TAB切换顺序

方法一: 在动态创建控件的时候STYLE设置成为WS_CHILD|WS_VISIBLE|WS_TABSTOP,其中WS_TABSTOP 是影响TAB顺序的。 先创建的控件TAB顺序在前。如...

vc++对话框Tab控件实现

  • 2010-09-14 11:02
  • 32KB
  • 下载

VC代码实现tab键选择控件

  • 2011-10-22 15:53
  • 120KB
  • 下载

VC中tab控件的使用

假如我现在有个SDI程序,View是Form View,想在上面放个Tab Control,包含两个Page。现在让我们来看看应该怎样处理。 首先当然要增加一个Tab Control资源,然后利...

VC TAB 控件使用

  • 2013-05-09 14:29
  • 13.27MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)