最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

tab 控件使用

来源:动视网 责编:小OO 时间:2025-09-29 18:26:37
文档

tab 控件使用

VC中TabControl控件使用方法(2010-06-2520:51:03)转载▼标签:vctabcontrolit分类:Qt/VC/Java   最近需要用Qt做上位机,觉得Qt和之前用过的VC还是比较熟的,所以首先熟悉一下以后要用在Qt下的控件,另外也熟悉一下有很久没有摸过的VC。下面我们来看一下使用步骤。1.新建一个MFC工程,取名xyTabControl,选择Dialogbased,然后Finish。2.删除对话框上默认添加的三个控件。添加TabControl控件并在Property
推荐度:
导读VC中TabControl控件使用方法(2010-06-2520:51:03)转载▼标签:vctabcontrolit分类:Qt/VC/Java   最近需要用Qt做上位机,觉得Qt和之前用过的VC还是比较熟的,所以首先熟悉一下以后要用在Qt下的控件,另外也熟悉一下有很久没有摸过的VC。下面我们来看一下使用步骤。1.新建一个MFC工程,取名xyTabControl,选择Dialogbased,然后Finish。2.删除对话框上默认添加的三个控件。添加TabControl控件并在Property
VC中TabControl控件使用方法

(2010-06-25 20:51:03) 

转载▼

标签: 

vc

tab

control

it分类: Qt/VC/Java 

    最近需要用Qt做上位机,觉得Qt和之前用过的VC还是比较熟的,所以首先熟悉一下以后要用在Qt下的控件,另外也熟悉一下有很久没有摸过的VC。

下面我们来看一下使用步骤。

1. 新建一个MFC工程,取名xyTabControl,选择Dialog based,然后Finish。

2. 删除对话框上默认添加的三个控件。添加Tab Control控件并在Property属性中设置ID为IDC_TAB1,添加变量m_tabctrl,类型为CTabCtrl。

3. 在对话框的初始化函数OnInitDialog里面添加如下代码:

   m_tabctrl.InsertItem(0,"memo0");      //添加参数一选项卡 

   m_tabctrl.InsertItem(1,"memo1");      //添加参数二选项卡

4.在对话框资源里面添加两个对话框资源, ID分别命名为IDD_PARA1, IDD_PARA2。字体为宋体, 字号为9, style为Child, Border为None, 调整高度宽度到适中尺寸。再分别为其添加对应的基于CDialog类CPara1, CPara2。

5. 在CxyTabControlDlg类中添加两个成员变量m_para1, m_para2, 分别是两个子对话框的实例. 代码如下:

  CPara2 m_para2;

  CPara1 m_para1;

6. 布置IDD_PARA1和IDD_PARA2对话框 如下图:

7. 在IDD_xyTabControl_DIALOG对话框的初始化函数OnInitDialog里面添加如下代码:

  //关联对话框,并且将IDC_TABTEST控件设为父窗口

    m_para1.Create(IDD_PARA1,GetDlgItem(IDC_TAB1));

    m_para2.Create(IDD_PARA2,GetDlgItem(IDC_TAB1));

    //获得IDC_TABTEST客户区大小

    CRect rs;

    m_tabctrl.GetClientRect(&rs);

    //调整子对话框在父窗口中的位置

    rs.top += 20;

    rs.bottom -= 20;

    rs.left += 1;

    rs.right -= 2;

    //设置子对话框尺寸并移动到指定位置

    m_para1.MoveWindow(&rs);

    m_para2.MoveWindow(&rs);

    //分别设置隐藏和显示

    m_para1.ShowWindow(1);

    m_para2.ShowWindow(0);

    //设置默认的选项卡

    m_tabctrl.SetCurSel(0);

8. 添加Tab Control控件的TCN_SELCHANGE事件响应函数OnSelchangeTabtest(NMHDR* pNMHDR, LRESULT* pResult) ,函数体代码如下:

    int CurSel = m_tabctrl.GetCurSel();

 

    switch(CurSel)

    {

     case 0:

       m_para1.ShowWindow(true);

       m_para2.ShowWindow(false);

     break;

     case 1:

       m_para1.ShowWindow(false);

       m_para2.ShowWindow(true);

     break;

     default:

     ;

     *pResult = 0;

    }

9.好了,完成,这个小程序很简单,效果如下图:

4.9 Tab Ctrl

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);

}

}

文档

tab 控件使用

VC中TabControl控件使用方法(2010-06-2520:51:03)转载▼标签:vctabcontrolit分类:Qt/VC/Java   最近需要用Qt做上位机,觉得Qt和之前用过的VC还是比较熟的,所以首先熟悉一下以后要用在Qt下的控件,另外也熟悉一下有很久没有摸过的VC。下面我们来看一下使用步骤。1.新建一个MFC工程,取名xyTabControl,选择Dialogbased,然后Finish。2.删除对话框上默认添加的三个控件。添加TabControl控件并在Property
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top