Embedding a CPropertySheet in a CDialog object.
Sieczka Mariusz -- sm@technodat.co.at
Monday, August 05, 1996
Enviroment: VC++ 4.0 and Windows NT 3.51, Win32s
Hi there!
How can I embed a property sheet in a modal dialog box.
(or more general: how to embed a dialog box in a dialog box)
I tried to execute a Sample out of 'Kruglinsky - Inside Visual C++':
example Ex087B but it didn't work!
IT'S REALY IMPORTANT (NOT ONLY FOR ME!)
Anybody who has some experience on this... please throw some light...
thanks ...
--
?:) Mariusz
-------------------------------------------------------------------
Mariusz Sieczka TECHNODAT GmbH.
sm@technodat.co.at CIMGRAPH Product Development
Tel: +662/454944-123 A-5020 Salzburg
Fax: +662/454944-9 Jakob-Haringerstrasse 6
-------------------------------------------------------------------
tomm@wrq.com
Friday, August 09, 1996
Environment: VC++ 4.2, NT 3.5
// .Here is one way to embed a dialog in another dialog..
// I don't claim it's the best way but it works perfectly.
//////////////////////////////////////////////////////////////////////
////////
//
// Function: CBHODlg::OnInitDialog()
//
// Description: embed a dialog box as a 'control' to hold a sub-table
//
// Returns: BOOL.
//
//////////////////////////////////////////////////////////////////////
////////
BOOL CBHODlg::OnInitDialog()
{
CDialog::OnInitDialog();
// .position the sub-table dialog and display it
CRect rectAnchor;
CRect rectSubTable;
// .NOTE: when you create the sub-table dialog resource,
// make certain it has a style of 'child'
// otherwise, the following code will not position
// the sub-table dialog correctly.
// (m_dlgSubTable is an instance of your embedded dialog class)
m_dlgSubTable.Create(IDD_DIALOG_HOST_OS_VERSION, this);
// . an invisible, disabled edit control made as small as possible
// on the parent dialog is used to 'anchor' the location of the
// top left corner of the sub-table dialog.
//
// there are probably better ways to do this.. but I found this
// method makes it simple to quickly make tiny adjustments to
// the embedded control's position
CWnd* pWnd = GetDlgItem(IDC_EDIT_ANCHOR);
// .GetWindowRect() returns screen coordinates of 'anchor' control
pWnd->GetWindowRect(&rectAnchor);
// .convert the screen coordinates to client coordinates for the
subsequent
// call to MoveWindow()
ScreenToClient(&rectAnchor);
// .get the size of the sub table dialog
m_dlgSubTable.GetClientRect(&rectSubTable);
// .position the window over the anchor - (for a child window,
MoveWindow() wants
// client coordinates)
m_dlgSubTable.MoveWindow(rectAnchor.left,
rectAnchor.top,
rectSubTable.right,
rectSubTable.bottom,
FALSE);
// .display the embedded dialog control window
m_dlgSubTable.ShowWindow(TRUE);
return(TRUE);
} //////////////////// .end function: CBHODlg::OnInitDialog()
Thomas Murtola
WRQ, Inc.
1500 Dexter Avenue North
Seattle, WA 98109
tomm@wrq.com
______________________________ Reply Separator _________________________________
Subject: Embedding a CPropertySheet in a CDialog object.
Author: mfc-l@netcom.com at CCINTNET
Date: 8/8/96 12:01 AM
Enviroment: VC++ 4.0 and Windows NT 3.51, Win32s
Hi there!
How can I embed a property sheet in a modal dialog box.
(or more general: how to embed a dialog box in a dialog box)
I tried to execute a Sample out of 'Kruglinsky - Inside Visual C++':
example Ex087B but it didn't work!
IT'S REALY IMPORTANT (NOT ONLY FOR ME!)
Anybody who has some experience on this... please throw some light...
thanks ...
--
?:) Mariusz
-------------------------------------------------------------------
Mariusz Sieczka TECHNODAT GmbH.
sm@technodat.co.at CIMGRAPH Product Development
Tel: +662/454944-123 A-5020 Salzburg
Fax: +662/454944-9 Jakob-Haringerstrasse 6
-------------------------------------------------------------------
| Вернуться в корень Архива
|