• MFC tab控件的使用 使用起来真的很麻烦


    注意:

    使用tab控件要为每一个tab页面设置子页面,而且切换页面也要自己编写函数!

    大小设置也需要注意,不然会挡住tab控件的切换按钮!

    1.tab控件创建

    1.1 将tab控件拖拽到Dialog上

    1.2 设置控件名字IDC_TAB,并创建成员变量m_tab

    2.创建子页面

    2.1 添加新Dialog,作为tab子页面

    2.2 为子页面设置属性

    3.主页面添加代码

    3.1 在主Dialog的头文件中声明这些子页面的实例

    3.2 为主Dialog添加WM_INITDIALOG消息事件,添加代码

     1 BOOL 主要Dlg::OnInitDialog() 
     2 {
     3     CDialog::OnInitDialog();
     4     
     5     // TODO: Add extra initialization here
     6 
     7     //设置tab页面的标题
     8     m_tab.InsertItem(0,_T("页面1")); 
     9     m_tab.InsertItem(1,_T("页面2")); 
    10     
    11     //为tab子页面绑定子窗口空间
    12     //无边框的子窗口(要先去创建过实例).Create(子窗口空间,GetDlgItem(父窗口tab空间))
    13     page1.Create(IDD_PAGE1,GetDlgItem(IDC_Var_TAB));
    14     page2.Create(IDD_PAGE2,GetDlgItem(IDC_Var_TAB));
    15 
    16     //子窗口大小设置,不设置的话会把tab标题给覆盖掉
    17     CRect rect;
    18     m_tab.GetClientRect(rect);
    19     rect.InflateRect(-1,-30,-2,-2);
    20     page1.MoveWindow(&rect);     //每一个子窗口大小都要设置
    21     page2.MoveWindow(&rect);
    22 
    23     //初始状态显示第一个tab页面
    24     page1.ShowWindow(SW_SHOW);
    25     
    26     return TRUE;  // return TRUE unless you set the focus to a control
    27                   // EXCEPTION: OCX Property Pages should return FALSE
    28 }

    3.3 为tab控件添加TCN_SELCHANGE消息,添加代码

     1 void CSyssetDlg::OnSelchangeVarTAB(NMHDR* pNMHDR, LRESULT* pResult) 
     2 {
     3     // TODO: Add your control notification handler code here
     4     //当点击了Tab的按钮  
     5     int num=m_tab.GetCurSel();//获取点击了哪一个页面
     6     switch(num)  
     7     {  
     8     case 0:
     9         page1.ShowWindow(SW_SHOW);  
    10         page2.ShowWindow(SW_HIDE);  
    11         break;  
    12     case 1:
    13         page1.ShowWindow(SW_HIDE);  
    14         page2.ShowWindow(SW_SHOW);
    15     }
    16     *pResult = 0;
    17 }

    其他参考:

    http://blog.csdn.net/keepaction/article/details/7377195

    http://www.cnblogs.com/lzmfywz/archive/2012/04/07/2436571.html

  • 相关阅读:
    人生苦短,我用python!
    Pycharm快捷键
    查看java进程
    带你掌握Arthas
    高并发场景下System.currentTimeMillis()的性能问题的优化
    SpringBoot整合Dubbo&ZooKeeper
    CentOS7下yum安装Mysql5.7
    SpringCache整合Redis实现自定义缓存时间
    Java开发神器lombok
    CentOS7安装Nginx
  • 原文地址:https://www.cnblogs.com/jun14/p/2751293.html
Copyright © 2020-2023  润新知