WTL CTabCtrl 使用实例

3 篇文章 0 订阅
WTL CTabCtrl 使用实例
假设基于对话框界面开发, 实现一组Tab页面。

在 .H  文件中,对类及成员的定义如下:

对话框子类继承:

class CMyMainDlg :  public CDialogImpl<CMyMainDlg>,
	public CWinDataExchange<CMyMainDlg>



消息映射:
BEGIN_MSG_MAP_EX(CMyMainDlg)
		MSG_WM_INITDIALOG(OnInitDialog)
		MESSAGE_HANDLER(WM_SYSCOMMAND, OnSysCommand)
		NOTIFY_HANDLER_EX(IDC_TAB1, TCN_SELCHANGE, OnSelchangeTab1)
	END_MSG_MAP()



响应函数声明:
LRESULT OnSelchangeTab1(LPNMHDR pnmh);



定义类成员变量:
界面上,放置有4个Tab页面:
CDialogImpl* m_pFunctionDlg[4];
	int m_CurSelTabIndex;
	CTabCtrl	m_tab;

在源文件中,增加TabCtrl变量的初始化、点击响应过程如下:

BOOL CMyMainDlg::OnInitDialog(CWindow wndFocus, LPARAM lInitParam)
{
	m_tab = GetDlgItem(IDC_TAB1);


    
	TCITEM t1;
	t1.mask = TCIF_TEXT;
	t1.pszText = (LPTSTR)“1”;//_T("完整性检查");
    m_tab.InsertItem(0, &t1);
    m_Dlg1.Create(m_tab.m_hWnd);
    m_pFunctionDlg[0] = (CDialogImpl *)&m_Dlg1;
    m_pFunctionDlg[0]->MoveWindow(&rc);
    m_pFunctionDlg[0]->ShowWindow(SW_SHOW);




    TCITEM t2;
	t2.mask = TCIF_TEXT;
	t2.pszText = (LPTSTR)“2”;
	m_tab.InsertItem(1, &t2);
	m_Dlg2.Create(m_tab.m_hWnd);
	m_pFunctionDlg[1] = (CDialogImpl *)&m_Dlg2;
	m_pFunctionDlg[1]->MoveWindow(&rc);
	m_pFunctionDlg[1]->ShowWindow(SW_HIDE);


    TCITEM t3;
	t3.mask = TCIF_TEXT;
	t3.pszText = (LPTSTR)“3”;
	m_tab.InsertItem(2, &t3);
	m_Dlg3.Create(m_tab.m_hWnd);
	m_pFunctionDlg[2] = (CDialogImpl *)&m_Dlg3;
	m_pFunctionDlg[2]->MoveWindow(&rc);
	m_pFunctionDlg[2]->ShowWindow(SW_HIDE);


	TCITEM t3;
	t3.mask = TCIF_TEXT;
	t3.pszText = (LPTSTR)“3”;
	m_tab.InsertItem(3, &t3);
	m_Dlg3.Create(m_tab.m_hWnd);
	m_pFunctionDlg[3] = (CDialogImpl *)&m_Dlg3;
	m_pFunctionDlg[3]->MoveWindow(&rc);
	m_pFunctionDlg[3]->ShowWindow(SW_HIDE);


	m_CurSelTabIndex = 0;


	return TRUE;  // return TRUE unless you set the focus to a control
}


LRESULT CMyMainDlg::OnSelchangeTab1(LPNMHDR pnmh)
{
	m_pFunctionDlg[m_CurSelTabIndex]->ShowWindow(SW_HIDE);
	m_CurSelTabIndex = m_tab.GetCurSel();
	m_pFunctionDlg[m_CurSelTabIndex]->ShowWindow(SW_SHOW);


	return 0;
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值