MFC tab控件使用

本文介绍了如何在MFC应用程序中使用CTabCtrl控件实现多页面功能。首先,在对话框中添加CTabCtrl,并创建窗口变量。接着,在OnInitDialog()中初始化控件和页面,调整布局。当页面选择发生变化时,通过OnSelchangeTabMain事件处理函数处理页面的显示和隐藏。然后,通过资源编辑器新建对话框,设置样式并添加类。最后,将新页面添加到CTabCtrl中,实现页面切换功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:在对话框窗口中添加tab控件,并创建一个窗口变量CTabCtrl m_tab_main;// tab页的框架

1:在.h中添加定义

#define PAGE_MAX   (6)//最大页面数

private:
 UINT8  m_pagecount;                     //页面数量
 CDialog  *m_pPage[PAGE_MAX];  //页面指针数组

 UINT8  m_cur_page;                       //当前页面指针


1:在ONinitdialog()中添加

{

   //设定显示在Tab范围内 
   CRect rc;
   m_tab_main.GetClientRect(rc);   //获取当前tab控件和客户区域 
   //调整rc的区域以匹配报警页面 
   rc.top += 21;
   rc.bottom -= 2;
   rc.left += 2;
   rc.right -= 1;

//创建页面

m_pagecount= 0; //页面数量

 
   //设置默认的选项卡 

   m_cur_page = 0; //当前页面指针
   m_pPage[m_cur_page]->ShowWindow(true);
   m_tab_main.SetCurSel(m_cur_page);

}

2:添加事件处理函数

void CggclientDlg::OnSelchangeTabMain(NMHDR *pNMHDR, LRESULT *pResult)
{
 // TODO:  在此添加控件通知处理程序代码
 int cur_sel = m_tab_main.GetCurSel();
 if (m_cur_page != cur_sel)
 {
  m_pPage[m_cur_page]->ShowWindow(SW_HIDE);
  m_pPage[cur_sel]->ShowWindow(SW_SHOW);
  m_cur_page = cur_sel;
 }

 *pResult = 0;
}

二:在资源文件夹中添加->资源->对话框->新建。

三:对新建的对话框,style选child,border选none,调整到合适的尺寸,修改ID:IDD_PAGE_NEW

四:在新建的对话框上添加一个类,CPageNew

五:在主dlg.h中添加
#include "pagenew.h"

及变量
 CPageNew m_page_NEW; //新建页面

六:在主对话框的ONinitdialog()中添加

{

//创建页面

if (m_userpms && PMS_OPER_NEW)

  {
    m_tab_main.InsertItem(m_pagecount, _T("新"));
    m_page_new.Create(IDD_PAGE_NEW, &m_tab_main);
    m_page_new.MoveWindow(&rc);
    m_page_new.ShowWindow(false);
    m_pPage[m_pagecount++] = &m_page_new;
 }

}

七:循环2-6,添加其他对话框


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值