rt!

解决方案 »

  1.   

    http://support.microsoft.com/kb/140850
      

  2.   


    dll导出一函数PreTranslateMessageDll.你的主程序
    CMainFrame::PreTranslateMessage()
    {
     if( PreTranslateMessageDll() )
     {
      return true;
     }
     .......
    }
      

  3.   

    STDAPI_(INT_PTR) ShowxxxDialog(HWND hParentWnd=NULL)
    {
    CMessageLoop theLoop;
    CxxxDialog aDialog;
    theLoop.AddMessageFilter(&aDialog);
    aDialog.Create(hParentWnd);
    aDialog.ShowWindow(SW_SHOWNORMAL);
    INT_PTR ret = theLoop.Run();
    theLoop.RemoveMessageFilter(&aDialog);
    return ret;
    }CMessageLoop是从WTL借来的代码...
      

  4.   

    楼上的五星朋友,MFC跟WTL不一样, 没有CMessageLoop 这个东东,
    而且你得把 theLoop加到Application的消息Loop中,
    _Module.AddMessageLoop(&theLoop);