DLL中创建具有属性页的对话框解决方法

DLL中创建具有属性页的对话框
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);
}
}

------解决方案--------------------
OnSetActive, OnKillFocus 直接返回
------解决方案--------------------
这是MFC的一个已知的bug,
http://support.microsoft.com/kb/149501/en-us