Re: CPropertySheet in front of modeless child CDialog?
"Mike M" <nospam@nospam.com> wrote in message
news:euhf930q73@enews2.newsguy.com...
AliR (VC++ MVP) wrote:
The property sheet and it's child dialog all have to have the same
parent? Who is the parent of the propertysheet?
It's just a CWinApp derived obj that calls DoModal on the property
sheet. Created with the wizard as a dialog app then converted to prop
sheet.
If the property sheet is the main window of your app, then you will need
a hidden main window that has the propertysheet as a child, and all the
child modeless dialog will have to have the propertysheet's parent as
their parent.
Ok cool. I was thinking that but not yet sure how to go about it. But
that helps. I suppose I could make the propertysheet modeless and put
the CWinApp in a message loop?
No, that's not what I said, I said you need a hidden window as the main
window. The property sheet can be modal if it wants to be, but it needs to
be a child of the hidden window. And the child windows of the proprty sheet
also need to have the hidden window as their parent.
I didn't say anything about making propertysheet modeless or a messsage
loop.
for simplicity I create a dlg that's hidden. You can create a CWnd if you
like.
BOOL CLSTeacherApp::InitInstance()
{
....
CHiddenDlg HiddenWnd;
HiddenWnd.Create(CHiddenDlg::IDD);
CPropertyDlg dlg(&HiddenWnd);
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
....
return FALSE;
}
Then in your propretysheet
m_ChildDlg.Create(CChildDlg::IDD,GetParent());
if you are creating it from the propetypage
ASSERT(GetParent());
m_ChildDlg.Create(CChildDlg::IDD,GetParent()->GetParent());
AliR.