- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CTabcontrol的使用
在基于对话框窗口中使用CTabCtrl
写在前面:
笔者之前用的大都是BCB的编译器,因为BCB提供了很多比VS容易使用的控件,让你花较少的时间在界面设计上。今天突然想用VS2008修改BCB的程序,单单界面设计就用了我大把时间,上网查了资料还有MSDN,现在把如何使用Tab Control的使用方法写下来供大家参考。
在对话框资源上添加一个 Tab Control 控件 ID 为 IDC _TAB1 ,然后为其添加成员变量 m_tab ,类型为 CTabCtrl,添加的方法如下,右击添加到窗体内的Tab Control控件,弹出选单:
图1. 添加成员变量
需要几个选项卡,则在对话框资源添加几个对话框,在这里只演示两个选项卡,则要添加两个对话框。其 ID 分别为 IDD_TAB_DIALOG1 , IDD_TAB_DIALOG1 它们的属性 style 为 Child, Border 为 None ,其他的再根据自己调整。然后分别为其添加对应的基于 CDialog 类 CTabPage1 ,CTabPage2
图2. 添加对话框
图3. 为对话框添加类
3.在主对话框头文件include子对话框头文件,然后再添加三个成员变量,为子对话框添加实例。在主对话框代码OnInitDialog()中初始化 Tab Control 控件并显示:
修改后tabTestDlg.h头文件如下(红色部分为修改部分):
// tabTestDlg.h : header file
//
#pragma once
#include afxcmn.h
#include CTabPage1.h
#include CTabPage2.h
// CtabTestDlg dialog
class CtabTestDlg : public CDialog
{
// Construction
public:
CtabTestDlg(CWnd* pParent = NULL); // standard constructor
//这里省略没必要修改的代码
public:
CTabCtrl m_tab;
CTabPage1 page1;
CTabPage2 page2;
};
在主对话框实现代码CTabTestDlg.cpp中修改OnInitDialog()函数(红色为修改部分):
BOOL CCTabTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//为Tab添加page
m_tab.InsertItem(0,_T(page1));
m_tab.InsertItem(1,_T(page2));
//page窗口创建
page1.Create(IDD_TAB_DIALOG1,GetDlgItem(IDC_TAB1));
page2.Create(IDD_TAB_DIALOG2,GetDlgItem(IDC_TAB1));
//获得IDC_TAB1客户区大小
CRect rs;
m_tab.GetClientRect(rs);
//下面要根据实际修改调整子对话框在父窗口中的位置,不然会显示出错
rs.top+=25;
rs.bottom-=60;
rs.left+=1;
rs.right-=10;
page1.MoveWindow(rs);
page2.MoveWindow(rs);
//分别设置隐藏和显示
page1.ShowWindow(true);
page 2.ShowWindow(false);
//设置默认的选项卡
m_tab.SetCurSel(0);
// Add About... menu item to system menu.
//这里省略没必要修改的代码
return TRUE; // return TRUE unless you set the focus to a control
}
接下来对Ctabctrl时间进行处理,主要是OnTcnSelchangeTab1事件。
双击Ctabctrl控件,VS会自动生成OnTcnSelchangeTab1事件处理函数,我们只要带改函数下添加要执行的代码就行了。
函数修改如下:
void CcomDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification han
文档评论(0)