删除文章

确定要删除这篇文章吗?

取消
确定

WTL多页面显示实现方法

     阅读(744)  2017-02-02 11:34:06

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

  1. 三个页面属性Style:Child, Border:None;
  2. 成员变量:

    CPageFirstDlg m_pageFirstDlg;
    CPageSecondDlg m_pageSecondDlg;
    CPageThirdDlg m_pageThirdDlg;
    
  3. 设置它们的显示区域:m_rcChildRect;

  4. 创建页面:

    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);
    
  5. 移动页面到指定区域(包括页面的显示大小及位置):

    m_pageFirstDlg.MoveWindow(&m_rcChildRect);
    m_pageSecondDlg.MoveWindow(&m_rcChildRect);
    m_pageThirdDlg.MoveWindow(&m_rcChildRect);
    
  6. 最后是显示:
    可以根据不同的条件显示指定的窗口,只需显示一个当前的窗口, 隐藏其它的窗口,如:

    ::ShowWindow(m_pageFirstDlg, SW_SHOW);
    ::ShowWindow(m_pageSecondDlg, SW_HIDE);
    ::ShowWindow(m_pageThirdDlg, SW_HIDE);
    

    (迁移2011-05-08)

文章评论

Keep it simple,stupid
文章数
303
总访问量
491386
今日访问
1762
最近评论

tujiaw : registerThreadInactive:如果当前没有激活的线程,就去激活线程,让等待的线程去执行任务。
hgzzx : 佩服佩服。 请教:registerThreadInactive的作用是什么?
xuehaoyun : 很不错,来围观一下
tujiaw : 抱歉csdn code服务关闭了,这个代码我也找不到了
于淞 : 你好,这个文章的源码能分享一下吗,songsong9181@163.com,谢谢了 上面的写错了
于淞 : 你好,这个文章的源码能分享一下吗,838106303@163.com,谢谢了 上面的链接不能用了
tujiaw : 多谢多谢
essaypinglun college-paper.org : 很好的博客,赞赞
Folly : 这个实现有点奇怪,Qt为什么没有统一的比对方法。
过多s : alert("hello, world!")
回到顶部