Skip to content

WTL多页面显示实现方法

Published: at 03:34 AM | 1 min read

这里假设一个主对话框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)