![]() |
【转帖】DLL中创建带有属性页的对话框Bug?
int StartPageDia(CDialog ** pDialog,BOOL bIsModal,HWND hWndParent,UINT msgToParent,PBYTE buf )
{ AFX_MANAGE_STATE(AfxGetStaticModuleState()); static CProperDia * pDia = NULL; if ( pDia == NULL) { pDia = new CProperDia; pDia-> Create( CProperDia::IDD,CWnd::FromHandle(hWndParent) ); *pDialog =pDia; } return 0; } DLL中引出此函数,创建具有属性页的对话框,当点击属性页中的对话框子控件,然后点击其他窗口,属性页丢失焦点,导致对话框总是在不断的发出接收WM_GETDLGCODE消息,出现死循环,那位大侠能伸出援手,百分求助,急等! static CDiaSheet * m_dlgPropertySheet =NULL; void CProperDia::InitSheet() { CRect rcsheet; GetDlgItem(IDC_FRAME)-> GetWindowRect(&rcsheet); ScreenToClient(&rcsheet); if ( NULL == m_dlgPropertySheet) { m_dlgPropertySheet = new CDiaSheet( "Simple PropertySheet "); ASSERT(m_dlgPropertySheet); // Add two pages to the CPropertySheet object. Both m_stylePage and CPropertyPage *m_stylePage = new CPage1; m_stylePage-> Create( CPage1::IDD,m_dlgPropertySheet); m_dlgPropertySheet-> AddPage(m_stylePage); m_dlgPropertySheet-> Create(this, WS_CHILD ¦WS_VISIBLE , 0); //NULL !=m_hParentWnd ? CWnd::FromHandle(m_hParentWnd) : m_dlgPropertySheet-> MoveWindow( &rcsheet); } } |
回复: 【转帖】DLL中创建带有属性页的对话框Bug?
OnSetActive, OnKillFocus 直接返回
|
回复: 【转帖】DLL中创建带有属性页的对话框Bug?
这是MFC的一个已知的bug,
http://support.microsoft.com/kb/149501/en-us |
所有的时间均为北京时间。 现在的时间是 08:06 AM. |