当我在程序中完成一个命令后,然后想发出一个消息(传送一个文件名)给主框架。这个消息应该如何的写?可以做到象PostMessage()或SendMessage()一样

解决方案 »

  1.   

    一样区别:只是PostMessage()仅,但不返回消息函数是否成功,而SendMessage()却返回
      

  2.   

    主框架句柄 h_wnd->PostMessage(....);
      

  3.   

    #define WM_MY_MESSAGE (WM_USER+ 150)CString * strFileName = "...";
    ::SendMessage(AfxGetMainWnd->m_hWnd,WM_MY_MESSAGE, strFileName,0);
      

  4.   

    我要问的是,怎么发送消息(我自己的消息),PostMessage()和SendMessage()的区别我知道
      

  5.   

    参考 dozoo(飞来峰上有晴天) 的做法
      

  6.   

    dozoo(飞来峰上有晴天)的回答很好。
      

  7.   

    消息自定义的好好像是#define WM_USER+n
      

  8.   

    dozoo(飞来峰上有晴天):请问一下我怎么得到文件的名字那,当消息传送完毕以后,还有不知道返回的是什么呀
      

  9.   

    发送消息改一下:
    CString  strFileName = "...";
    ::SendMessage(AfxGetMainWnd->m_hWnd,WM_MY_MESSAGE, (WPARAM)&strFileName,0);接收消息:
    重载你主窗口的WindowProc,
    LRESULT CYourMainWnd::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {  
     // 加入以下代码
        CString *strTemp;
        switch(message)
        {
            case  WM_MY_MESSAGE :
                strTemp= (CString*)wParam;
                m_strFileName = *strTemp;//m_strFileName为成员变量,CString类型
                AfxMessageBox(m_strFileName);
                break;
        }
    }
      

  10.   

    我是在用ATL模板编com组件,且用到了MFC,则主窗口应该如何定义?switch(message)只是用在非MFC的vc程序中,若是MFC则应该如何呐?
      

  11.   

    switch(message)是c语法, MFC是c++语法, 当然应该兼容了