Resizing Property page inside a splitter pane
Randy Kirby -- randy@sensor.secacc.com
Tuesday, October 01, 1996
Environment: MSVC 4.2, Windows 95.
I'm pulling my hair out trying to get my property pages to grow as
the splitter pane in which they and their property page reside.
In the OnCreateClient method of my MainFrame, I am creating 2
splitter windows and 4 panes. One of the panes holds my subclassed
CView class.
In this view I have member variables that point to my
property sheet and property pages. Inside the Create function for
this view I create my property pages and sheet and add the pages to
the sheet. (no problem so far...)
When the pane is displayed, the subclassed property sheet fills the
splitter ane as it should, BUT the property pages remain the same
size as the were when they were created. So, it makes sense that I
should be overriding the OnSize function for the PropertySheet and
then resizing the PropertyPages within.
So here's what I'm doin,:
MyPropertySheet::OnSize(...)
{
RECT rc;
GetWindowRect(&rc);
ScreenToClient(&rc);
MyPropertyPage* pPage = (MyPropertyPage*) GetPage(0);
rc.top+=6;
rc.bottom-=6;
...
pPageMoveWindow(&rc);
...
}
But my porpertyPages are still in the same location.
I know this description is a bit vague, but any ideas?
Any help would be appreciated! I'm losin' hair fast!!!
Randy Kirby
Sensormatic Electronics
Boca Raton, FL
randy@secacc.com
Ian Southwell -- IanSouthwell@ApexSystems.COM
Thursday, October 03, 1996
[Mini-digest: 3 responses]
I am not looking at my source code, but from memory what I did was to
just resize my property sheet, the pages are sized automatically. Just
call SetWindowPos() with the SWP_NOMOVE attribute and pass the width and
height from OnSize. This is OK if its a CView but for CScrollView I had
to paint the background of the splitter window... If you are still
having problems let me know and I'll dig out my code.
Ian Southwell
>----------
>From: Randy Kirby[SMTP:randy@sensor.secacc.com]
>Sent: Tuesday, October 01, 1996 6:41 PM
>To: mfc-l@netcom.com
>Subject: Resizing Property page inside a splitter pane
>
>Environment: MSVC 4.2, Windows 95.
>
>I'm pulling my hair out trying to get my property pages to grow as
>the splitter pane in which they and their property page reside.
>
>In the OnCreateClient method of my MainFrame, I am creating 2
>splitter windows and 4 panes. One of the panes holds my subclassed
>CView class.
>In this view I have member variables that point to my
>property sheet and property pages. Inside the Create function for
>this view I create my property pages and sheet and add the pages to
>the sheet. (no problem so far...)
>
>When the pane is displayed, the subclassed property sheet fills the
>splitter ane as it should, BUT the property pages remain the same
>size as the were when they were created. So, it makes sense that I
>should be overriding the OnSize function for the PropertySheet and
>then resizing the PropertyPages within.
>
>So here's what I'm doin,:
>
>MyPropertySheet::OnSize(...)
>{
>RECT rc;
>GetWindowRect(&rc);
>ScreenToClient(&rc);
>
>MyPropertyPage* pPage = (MyPropertyPage*) GetPage(0);
>rc.top+=6;
>rc.bottom-=6;
>...
>pPageMoveWindow(&rc);
>...
>}
>
>But my porpertyPages are still in the same location.
>
>I know this description is a bit vague, but any ideas?
>
>Any help would be appreciated! I'm losin' hair fast!!!
>
>Randy Kirby
>Sensormatic Electronics
>Boca Raton, FL
>randy@secacc.com
>
-----From: ganeshs@nationwide.com
Check out KB article Q143291: "How to Resize CPropertyPages at Run
Time" for the answer... Hope it stops your hair-fall! ;->
/ ___| / ___| __ _ _ __ ___ ___| | I do not speak for
\___ \ | | _ / _` | '_ \ / _ \/ __| '_ \ Tata Unisys or
___) | | |_| | (_| | | | | __/\__ \ | | |Nationwide Ins.
|____(_) \____|\__,_|_| |_|\___||___/_| |_|------------------
-----From: "D. John Anderson"
You need to get the TabControl of the property sheet by sening it =
a GetTabControl and send the TabControl a MoveWindow for the new =
size. It in turn needs to send a MoveWindow to the active property =
page (or all pages unless you pages when they become active). =
Calling GetTabControl crashes until the PropertySheet has been =
properly initialized with Create in the modeless case.
Hope this helps,
John Anderson
| Вернуться в корень Архива
|