• MFC多标签页对话框


    原文链接(有修改):http://blog.sina.com.cn/s/blog_6a1cdb3f0101llcw.html

    1.新建一个MFC工程
    取名PageSheet,选择Dialog based,然后Finish。

    2.在对话框资源中插入两个对话框IDD_DIALOG1、IDD_DIALOG2,作为两个子页。

    3.为这两个对话框增加两个类,分别为CPage1和CPage2,其基类选择CPropertyPage。

    4.增加一个属性页类CMySheet, 其基类选择CPropertySheet。

    5.在类CMySheet中增加两个成员变量m_page1,类型为CPage1,m_page2,类型为CPage2。
    如:

    public:
     CPage1 m_page1;
     CPage2 m_page2;

    6.在类CMySheet的构造函数中添加如下两句,增加两个页。
    如:

    CMySheet::CMySheet()
    {
     AddPage(&m_page1);
     AddPage(&m_page2);
    }
    ps:CMySheet类原先的两个带参构造函数,可以删除,改成以上所示无参构造函数。

    7.在类CPageSheetApp的初始化函数InitInstance()中,将原来声明的对象去掉。改为属性页类对象声明。
    如:

    //CPageSheetDlg dlg;
      CMySheet dlg;

    8.添加头文件。
    ①“PageSheet.cpp”文件中添加头文件“MySheet.h”
    ②“MySheet.h”中添加头文件“CPage1.h”和“CPage2.h”

    9.为属性页类添加初始化函数。
    如:

    BOOL CMySheet::OnInitDialog()
    {
     //属性页对话框初始化
     BOOL bResult =CPropertySheet::OnInitDialog();
    
     //设置窗口标题
     SetWindowText("Page Sheet");
    
     //去除多余的控件(确定、取消、应用、帮助)
     CWnd *pWnd = GetDlgItem(IDOK);
     pWnd->ShowWindow(SW_HIDE);
     pWnd = GetDlgItem(ID_APPLY_NOW);
     pWnd->ShowWindow(SW_HIDE);
     pWnd = GetDlgItem(IDHELP);
     pWnd->ShowWindow(SW_HIDE);
     pWnd = GetDlgItem(IDCANCEL);
     pWnd->ShowWindow(SW_HIDE);
     RECT  rc; 
    
     //调整属性页对话框的大小 
     GetWindowRect (&rc); 
     MoveWindow(rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top-30); //调整窗口 
    
     return bResult;
    }

    10.可以将多余的对话框、文件删除。
    对话框:程序初始对话框IDD_PAGESHEET_DIALOG
    文件:CPageSheetDlg.h ,CPageSheetDlg.cpp


  • 相关阅读:
    [JZOJ3339]【NOI2013模拟】wyl8899和法法塔的游戏
    [JZOJ3337] 【NOI2013模拟】wyl8899的TLE
    UVA 1262 Password
    UVA 10820 Send a Table
    UVA 12716 GCD XOR
    UVA 10791
    UVA 10375 choose and divide (唯一分解定理)
    欧拉函数
    51 Nod 1069 Nim游戏
    51 Nod 1242 矩阵快速幂求斐波那契数列
  • 原文地址:https://www.cnblogs.com/wishchin/p/9200361.html
Copyright © 2020-2023  润新知