我在CFormView中加了一个属性框,并在属性框中加了两个属性页.
CMyPropSheet::CMyPropSheet(CWnd *pParentWnd)
:CPropertySheet(AFX_IDS_APP_TITLE,pParentWnd)
{
AddPage(&m_MyPage1);
AddPage(&m_MyPage2);
}
我在CFormView中初始化占位符和属性框大小:
CRect rectTemp;
this->GetWindowRect(rectTemp);
pwndPropSheetHolder->SetWindowPos(NULL,0,0,rectTemp.Width(),rectTemp.Height(),0);
pwndPropSheetHolder->GetWindowRect(rectTemp);
m_pMyPropSheet->SetWindowPos(NULL,0,0,rectTemp.Width(),rectTemp.Height(),SWP_NOZORDER|SWP_NOACTIVATE);
但运行结果只是占位符充满了速个CFormView视图,属性框只是跟最大的那个属性页一样大.
问:怎么样用语句调整属性页的大小??

解决方案 »

  1.   

    CMyPropSheet重载OnInitDialog中
    CProppertySheet::OnInitDialog()
    后MoveWindow
      

  2.   

    CMySheet::OnInitDialog()
    {
       MoveWindow(...);//或者SetWindowPos
    }
      

  3.   

    我也想到在属性页里初始化,但是
    class CMyPage1 : public CPropertyPage
    {
       ...
    }
    属性页继承于CPropertyPage类,里面没有::OnInitDialog()函数啊.
    类CPropertySheet里面倒是有OnInitDialog()函数..
    class CMyPropSheet : public CPropertySheet
    {...}
    但是如果在CMyProSheet里面调整在属性页大小的话,属性页会把属性框上的小标签盖掉,就是说很难调整属性页到合适的大小,.
    不信大家试试看..
    这个问题我搞了很久也没搞出来...
      

  4.   

    难道大家在制作属性框时没有遇到这样的问题么???在一个Form视图中有一个属性框,当改变Form视图时要求属性框大小跟着改变..到底应该怎么样做呢?
      

  5.   

    应该这样:
    在CMyPropSheet初始化:
    CRect rectTemp;
    this->GetWindowRect(rectTemp);
    pwndPropSheetHolder->SetWindowPos(NULL,0,0,rectTemp.Width(),rectTemp.Height(),0);
    pwndPropSheetHolder->GetWindowRect(rectTemp);
    m_pMyPropSheet->SetWindowPos(NULL,0,0,rectTemp.Width(),rectTemp.Height(),SWP_NOZORDER|SWP_NOACTIVATE);
      

  6.   

    参见以下链接
    http://support.microsoft.com/default.aspx?scid=kb;en-us;300606