我有一个MFC的MDI程序,想在两个子窗体之间实现如下的通讯传值:例如子窗体A,B是同样的架构与视图,A, B都是打开状态,我通过鼠标点击A窗体-->移动鼠标到B窗体上-->释放鼠标结果:A窗体上文本框或者某个值,在B窗体上显示出来?如果或者这样一个过程?谢谢!

解决方案 »

  1.   

    http://www.codeproject.com/KB/list/dragtest.aspx
    参考下这里
      

  2.   

    实际上我是想把A的一个成员变量给B  不知道是不是要想要WM_DROPFILES这个消息 这个消息该怎么用呢?
      

  3.   

    在B中直接调用A的成员变量就可以了吧?DoModal();
    另外如果要发送消息的话,如下:
    1.自定义消息的发送方法  (1)在 resource.h 或 stdax.h 文件添加如下代码定义一个自己的消息:  #define WM_MY_MESSAGE WM_USER +1  (2)在消息处理函数所在的类的头文件中添加如下代码:  //{{AFX_MSG(C...)
      afx_msg ........
      afx_msg ........
      afx_msg void OnMyMessage(/*WPARAM wParam, LPARAM lParam*/);//参数有无根据实际情况而定
      //}}AFX_MSG
      DECLARE_MESSAGE_MAP( )  (3)在消息处理函数所在的类的cpp文件中添加如下代码:  BEGIN_MESSAGE_MAP(... , ...)
      //{{AFX_MSG_MAP(CPostmessageView)
      ON_COMMAND .......
      ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
      //}}AFX_MSG_MAP
      ......
      END_MESSAGE_MAP()  (4)在消息处理函数所在的类的cpp文件中手动添加消息相应函数代码:  void CPostmessageView::OnMyMessage(/*WPARAM wParam, LPARAM lParam*/)
      {
      ........
      ........  }  (5)在需要发送消息的地方添加代码:  PostMessage(WM_MY_MESSAGE);  或  SendMessage(WM_MY_MESSAGE);  
    2.从一个类向MainFrame类发送自定义消息  直接使用PostMessage或SendMessage函数只能向函数所在的类发送消息,如果想向MainFrame类发送消息,可以使用下面的代码:  ((CMainFrame*)AfxGetMainWnd())->PostMessage(WM_XXX);  或  ((CMainFrame*)AfxGetMainWnd())->SendMessage(WM_XXX);
      

  4.   

    我明白了,楼主是想实现拖拽功能,就像windows的用鼠标拖拽文件的功能,我只知道怎样响应WM_DROPFILES消息,不知道如何发送WM_DROPFILES消息。
      

  5.   

    我只能告诉两点:1)老老实实用drag-drop功能.
    2)通过自己对clipboard剪切板操作实现
      

  6.   


    我的目的是,窗体AB实质上是一个图形界面,从本地的文件中打开的,我想在窗体之间通过拖拽使得图形能在一个窗体上覆盖显示。
    但WM_DROPFILES我只实现了从本地拖拽到窗体上,在两个子窗体上拖拽好像不响应。不知道这个问题该怎么弄?