• 使用CTabCtrl控件实现属性页功能


    使用CTabCtrl控件实现属性页功能


    在视图窗口内加入CTabCtrl控件,设变量名为m_tab,新建两个对话框属性style,border分别设为Child,None,用ClassWizard生成新的类,基类为Cdialog,分别为Cpage1,Cpage2,ID号分别为IDD_DIALOG1,IDD_DIALOG2。在CtestView内加入两个变量,Cpage1 page1;Cpage2 page2。
    在CtestView的OnInitialUpdae()内初始化 (如果是dialog对话框程序 在OnInitaildialog函数里初始化)
    void CTestView::OnInitialUpdate()
    {
    CFormView::OnInitialUpdate();
    GetParentFrame()->RecalcLayout();
    ResizeParentToFit();

    if(!page1.m_hWnd||!page2.m_hWnd) //第一次初始化m_tab 控件和page页的建立
    {
    //初始化m_tab控件
    m_tab.InsertItem(0,"page0 北京");
    m_tab.InsertItem(1," page1上海");
    m_tab.InsertItem(2," page2江西");

    //建立属性页各页
    page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
    page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));

    //设置页面的位置在m_tab控件范围内
    CRect rs;
    m_tab.GetClientRect(rs);
    rs.top+=20;
    rs.bottom-=4;
    rs.left+=4;
    rs.right-=4;

    page1.MoveWindow(rs);
    page2.MoveWindow(rs);

    page1.ShowWindow(TRUE);
    m_tab.SetCurSel(1);
    }
    }
    m_tab控件属性页选择时显示各页
    void CTestView::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
    {
    // TODO: Add your control notification handler code here
    int CurSel;
    CurSel=m_tab.GetCurSel();
    switch(CurSel)
    {
    case 0:
    page1.ShowWindow(FALSE);
    page2.ShowWindow(FALSE);
    break;
    case 1:
    page1.ShowWindow(TRUE);
    page2.ShowWindow(FALSE);
    break;
    case 2:
    page1.ShowWindow(FALSE);
    page2.ShowWindow(TRUE);
    break;
    default: ;
    }


    *pResult = 0;
    }

  • 相关阅读:
    IOS GCD使用实例大全
    IOS GCD图片数据异步下载,下载完成后合成显示
    Git使用详细教程
    maven是干什么的?
    npm 的作用
    webstorm+nodejs环境中安装淘宝镜像
    关于框架搭建-web
    ES6-babel转码
    JavaScript单元测试工具-Jest
    webpack-dev-server和webpack
  • 原文地址:https://www.cnblogs.com/likwo/p/1665053.html
Copyright © 2020-2023  润新知