Re: Application Hangs when going through CPropertySheet OnInitDialog
f
On Feb 27, 7:06 am, ZaZy <z...@dontuseme.com> wrote:
gag ha scritto:
On Feb 9, 9:07 pm, RainMan <Rain...@online.nospam> wrote:
OS does not really matter. Modify property sheet extended style add=
ing
WS_EX_CONTROLPARENT.
If not set property sheet has a problem restoring control's focus af=
ter
focus was switched from a property page to another window or control.
Property page ends up in an endless loop once it hits property sheet. =
It
cannot find any control since default property sheet style does not ha=
ve
WS_EX_CONTROLPARENT style.
WS_EX_CONTROLPARENT will cause property sheet to be treated as another
control when embedded in another window and allow for tabbing through
property sheet controls and property pages without any problem.
--
RainMan
"gag" wrote:
Hi all,
We have an application that hangs for some users who are running XP s=
p
3 and Vista. The application is a MFC dialog with a CPropertySheet
which contains two CPropertyPages on the dialog. It looks like the
application goes into the CPropertySheet OnInitDialog and never
returns. When I look in the task manager it shows that it is still
running.
This hang only happens for some users. For those users I have had the=
m
start up in safe mode and the app will successfully launch. It seems
like there maybe some conflict with another app that is running.
The real hassle is that I cannot recreate it at work or at home to tr=
y
to work on it.
Does anyone have any suggestions? I am running out of things to try.
Any help would be greatly appreciated.
Thank you in advance!
Greg- Hide quoted text -
- Show quoted text -
We are setting this styel already. I read that setting the
WS_EX_CONTROLPARENT before the CPropertySheet::onInitDialog call could
cause this problem. I also read that setting it after the onInitDialog
could also cause the endless loop. I have tried both and do not know
where to go from here.
Dave, just try this:
BOOL CMyPropertySheet::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_GETDLGCODE)
{
CPropertySheet::PreTranslateMessage(pMsg)=
;
return FALSE;
}
return CPropertySheet::PreTranslateMessage(pMsg);
}
And remember that the MyPropertySheet instance should not be child of a
control.
This simply tells to do not dispatch that damned message and SHOULD (in
my casa HAS) solve the problem.
Try and please let us know!
ZaZy- Hide quoted text -
- Show quoted text -
Still having the problem. The property sheet is not a child of any
control. It is put onto CDialog object. I use the following code.
m_appPropSheet.AddPage(m_saleIllustrationPropPage);
m_appPropSheet.AddPage(m_multiLifeIllustrationPropPage);
m_appPropSheet.EnableStackedTabs( FALSE );
m_appPropSheet.Create(this, WS_CHILD | WS_VISIBLE , 0);
m_appPropSheet.ModifyStyleEx (0, WS_EX_CONTROLPARENT);
m_appPropSheet.ModifyStyle( 0, WS_TABSTOP);
m_appPropSheet.SetWindowPos(NULL, 0, 0, 0, 0,
SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
Is this code causing the problem?
I am really stuck on this and our clients are getting impatient
Thanks,
Greg