zoukankan      html  css  js  c++  java
  • MFC Tab控件使用

    2008-11-05 14:57

    1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl
      2、创建两个新的对话框资源,其属性作如下修改:
      Border:none //边界为空,这样它就没了标题栏
      Style :Child // 这样这个模板就可以当作另一个窗口的子窗口了。其它如果没有必要,就不用改了。
      在上面加一些控件什么的,具体操作跟普通对话框没有区别。
      完成后从这两个对话框模板生成两个新的对话框类。
      3、在主对话框中为新添加进来的两个类增加两个变量:
      如:CDialog1 m_mm1;
      CDialog2 m_mm2;
      4、在主对话框的OnInitDialog()函数中添加如下类似的代码:

    TCITEM item;
      item.mask = TCIF_TEXT;
      item.pszText = "第一页";

    m_tabctrl.InsertItem (0,&item);
      item.pszText ="第二页";
      m_tabctrl.InsertItem (1,&item);

    m_mm1.Create (IDD_DIALOG1,&m_tabctrl); m_mm2.Create (IDD_DIALOG2,&m_tabctrl);

    m_mm1.SetWindowPos (NULL,10,30,400,100,SWP_SHOWWINDOW);
      m_mm2.SetWindowPos (NULL,10,30,400,100,SWP_HIDEWINDOW );
      解释如下:
      两个InsertItem函数的调用是为了给标签控件增加两个标签页面,文本是标题。
      SetWindowPos()函数设置这两个对话框在Z顺序中的位置,显示或隐藏状态.。
      5、在主对话中为标签控件添加一个标签选择改变(TCN_SELCHANGE)的控件通知消息,以便在用户选择标签时通知主对话框。在主对话框的编辑界面右击标签控件,选择添加一个事件可以完成这个操作。
      在事件处理中添加如下代码,如下例:
      void CtabdialogDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
      {
      CRect r;
      m_tabctrl.GetClientRect (&r);

    switch(m_tabctrl.GetCurSel())
      {
      case 0: m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);
      m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW );
      break;
      case 1:
      m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);
      m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW );
      break;
      }
      *pResult = 0;
      }
      要想知道用户选择那个标签页,要通过m_tabctrl.GetCurSel()   函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面的尺寸。

    或者:
      m_Tab.InsertItem(0,"第一页");
      m_Tab.InsertItem(1,"第二页");
      m_Tab.InsertItem(2,"第三页");
      m_Tab.InsertItem(3,"第四页");

    m_PageA.Create(IDD_PROPPAGE_A,&m_Tab);
      m_PageB.Create(IDD_PROPPAGE_B,&m_Tab);
      m_PageC.Create(IDD_PROPPAGE_C,&m_Tab);
      m_PageD.Create(IDD_PROPPAGE_D,&m_Tab);

    m_PageA.ShowWindow(SW_SHOW);
      m_PageB.ShowWindow(SW_HIDE);
      m_PageC.ShowWindow(SW_HIDE);
      m_PageD.ShowWindow(SW_HIDE);

  • 相关阅读:
    形象理解ERP(转)
    禁用windows server 2008 域密码复杂性要求策略
    How to adding find,filter,remove filter on display method Form
    Windows Server 2008 R2激活工具
    How to using bat command running VS development SSRS report
    Creating Your First Mac AppGetting Started
    Creating Your First Mac AppAdding a Track Object 添加一个 Track 对象
    Creating Your First Mac AppImplementing Action Methods 实现动作方法
    Creating Your First Mac AppReviewing the Code 审查代码
    Creating Your First Mac AppConfiguring the window 设置窗口
  • 原文地址:https://www.cnblogs.com/yaowen/p/2878510.html
Copyright © 2011-2022 走看看