WTL多页面显示实现方法

Table of Contents

    这里假设一个主对话框CMainDlg有三个页面CPageFirstDlg、CPageSecondDlg、CPageThirdDlg;

    1. 三个页面属性Style:Child, Border:None;
    2. 成员变量:
    CPageFirstDlg m_pageFirstDlg;
    CPageSecondDlg m_pageSecondDlg;
    CPageThirdDlg m_pageThirdDlg;
    
    1. 设置它们的显示区域:m_rcChildRect;
    2. 创建页面:
    HWND m_hPageFirst = m_pageFirstDlg.Create(m_hWnd, IDD_PAGE_FIRST);
    HWND m_hPageSecond = m_pageSecondDlg.Create(m_hWnd, IDD_PAGE_SECOND);
    HWND m_hPageThird = m_pageThirdDlg.Create(m_hWnd, IDD_PAGE_THIRD);
    
    1. 移动页面到指定区域(包括页面的显示大小及位置):
    m_pageFirstDlg.MoveWindow(&m_rcChildRect);
    m_pageSecondDlg.MoveWindow(&m_rcChildRect);
    m_pageThirdDlg.MoveWindow(&m_rcChildRect);
    
    1. 最后是显示:
      可以根据不同的条件显示指定的窗口,只需显示一个当前的窗口, 隐藏其它的窗口,如:
    ::ShowWindow(m_pageFirstDlg, SW_SHOW);
    ::ShowWindow(m_pageSecondDlg, SW_HIDE);
    ::ShowWindow(m_pageThirdDlg, SW_HIDE);
    

    (迁移2011-05-08)

    上一篇文章

    下一篇文章