MessageBox hangs app. AfxMessageBox
Subject: Message box hangs application
From: JC <elvis_is_king@bellsouth.net>
Newsgroups: microsoft.public.vstudio.development
- Apologies for posting in 2 groups separately.
I also posted this on microsoft.public.vstudio.development
Will properly cross-post next time. I don't use newsgroups a lot and am
just getting the hang of this Xnews reader.
- Apologies for posting in 2 groups separately.
=====================================================================
=====================================================================
=====================================================================
=====================================================================
I am an embedded programmer that is new to Windows programming. So, that
makes me a newbie to Windows (other than a little maintenance here and
there).
I have created a simple application in VS2005. It is a dialog app (not
SDI or MDI). In the application code a CDialog is created; this was put
there by VS2005 code generation.
In the application code a CDialog is created (as mentioned previously).
Then I added a property sheet from the CDialog class.
Then I added property pages from the CPropertySheet class.
When I try to put up an AfxMessageBox or MessageBox, the app. hangs.
I set all dialogs and sheets as "'child" in the dialog editor.
Any ideas? Any help would be greatly appreciated.
--
Regards,
JC
Here are the code excerpts.
========================================================
BOOL CTestCaseApp::InitInstance()
{
... Other wizard generated code...
CTestCaseDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
return FALSE;
}
BOOL CTestCaseDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // wizard generated
... Other wizard generated code...
m_pPSheetCase = new CPSheetCase(m_sWinTitle, (CWnd*)this, 0);
m_pPSheetCase->Create((CWnd*)this, dwStyle);
m_pPSheetCase->ShowWindow(SW_SHOWNORMAL);
m_pPSheetCase->SetFocus();
m_pbIDOK = (CButton*)GetDlgItem(IDOK);
m_pbIDOK->EnableWindow(0);
m_pbIDOK->ShowWindow(0);
/*--------------------------------------------------------------
By default, from the VS project wizard, the "Close button" which
is the 'X' in the upper-right corner of the dialog does not work
with the IDCANCEL button disabled. To fix it, WM_ON_CLOSE() was
added to the message map for this file. Also, the overridden
funcion OnClose() had to be created. Now the 'X' calls OnClose()
in this cpp file. JAC
--------------------------------------------------------------*/
m_pbIDCANCEL = (CButton*)GetDlgItem(IDCANCEL);
m_pbIDCANCEL->EnableWindow(0);
m_pbIDCANCEL->ShowWindow(0);
m_pbID_HELP = (CButton*)GetDlgItem(ID_HELP);
m_pbID_HELP->EnableWindow(0);
m_pbID_HELP->ShowWindow(0);
return TRUE; // return TRUE unless you set the focus to a control
}
CPSheetCase::CPSheetCase(LPCTSTR pszCaption, CWnd* pParentWnd, UINT
iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
m_pOsInfo = new (OSVERSIONINFO);
m_pOsInfo->dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(m_pOsInfo);
//Check if XP Operating System
bIsWindowsXPorLater = ((m_pOsInfo->dwMajorVersion >5 ) ||
( (m_pOsInfo->dwMajorVersion ==5 ) &&
(m_pOsInfo->dwMinorVersion >=1 ) ) );
m_pPPage1 = NULL;
m_pPPage1 = new CPPageCase1;
AddPage(m_pPPage1);
m_pPPage2 = NULL;
m_pPPage2 = new CPPageCase2;
AddPage(m_pPPage2);
m_pPPage3 = NULL;
m_pPPage3 = new CPPageCase3;
AddPage(m_pPPage3);
m_pPPage4 = NULL;
m_pPPage4 = new CPPageCase4;
AddPage(m_pPPage4);
}
void CPPageCase1::OnBnClickedPpage()
{
CPropertySheet* pParent;
pParent = static_cast<CPropertySheet*>(GetParent());
// pParent->GetParent()->MessageBox("Shit");
// pParent->MessageBox("Msg1");
// pParent = ::GetParent((HWND)this);
// AfxMessageBox("Msg2",MB_TOPMOST | MB_SETFOREGROUND | MB_OK);
}
========================================================