如何点击CPropertySheet的最大化按钮时使当前活动的
CPropertyPage页面也响应最大化?

解决方案 »

  1.   

    响应WM_SIZE消息!在这里面处理应该可以
      

  2.   

    CPropertySheet的父窗口的OnSize函数中MoveWindow/SetWindowPos()来调整CPropertySheet,同样的在CPropertySheet的OnSize中处理CPropertyPage的区域
      

  3.   

    这个方法我懂
    我现在想问CPropertySheet最大化时怎么让使CPropertyPage也响应
      

  4.   


    BOOL CXXXPropertySheet::OnInitDialog()
    {
      BOOL bResult = CPropertySheet::OnInitDialog();  // TODO: Add your specialized code here  //先激活所有页面(创建页面)
      int nSavePage = GetActiveIndex();
      for(int nPage=0; nPage<GetPageCount(); nPage++)
      {
        SetActivePage(nPage);
      }
      SetActivePage(nSavePage);  PostMessage(WM_SIZE); //发送一个调整消息  return bResult;
    }void CXXXPropertySheet::OnSize(UINT nType, int cx, int cy) 
    {
      CPropertySheet::OnSize(nType, cx, cy);

      // TODO: Add your message handler code here
      if(!GetSafeHwnd())
        return;  CTabCtrl *pCtrl = GetTabControl();
      if(pCtrl)
      {
        CRect PageRect;
        GetClientRect( &PageRect );
        pCtrl->AdjustRect(0, PageRect);    for(INT nPage=0; nPage<GetPageCount(); nPage++)
        {
          CPropertyPage *pPage = GetPage(nPage);
          if(pPage && pPage->GetSafeHwnd())
          {
            pPage->MoveWindow( &PageRect );
          }
        }
      }
    }如果还要调整Page内的尺寸位置,在响应的页面里响应WM_SIZE消息