我建一个try工程,CtryDoc类里用不了sendmessage(WM_DESTROY,0,0)和messagebox("","",MB_OK),它说不接受三个参数,为什么,要怎么才行,它要的句柄在哪里,怎么得到?

解决方案 »

  1.   

    CWnd的SendMessage才有这种形式,因为默认向CWnd的窗口句柄发消息;其他类中使用的是API形式的SendMessage,需要指明第一个窗口句柄参数,请楼主自己查MSDN。
      

  2.   

    可以用sdk的或是mfc的。LRESULT SendMessage(
      HWND hWnd, 
      UINT Msg, 
      WPARAM wParam, 
      LPARAM lParam 
    ); 
    This function sends the specified message to a window or windows。请自己考虑 a window or windows。就知道为什么了
      

  3.   

    sendmessage(AfxGetMainWnd()->GetSafeHwnd(), WM_DESTROY,0,0);
    这样就可以了。
      

  4.   

    sendmessage(AfxGetMainWnd()->GetSafeHwnd(), WM_DESTROY,0,0); 
    AfxMessageBox
      

  5.   

    sendmessage消息只能发给建立在所有继承至CWnd类的类里。CtryDoc是一个CDocument类,并非继承至CWnd,所以从CDocument里是发消息的必须有HWND参数。
    同理messagebox
    但messagebox可以这么用messagebox(NULL,"","",MB_OK),