MDI两个子窗体之间通讯的问题,高结贴率! 我有一个MFC的MDI程序,想在两个子窗体之间实现如下的通讯传值:例如子窗体A,B是同样的架构与视图,A, B都是打开状态,我通过鼠标点击A窗体-->移动鼠标到B窗体上-->释放鼠标结果:A窗体上文本框或者某个值,在B窗体上显示出来?如果或者这样一个过程?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.codeproject.com/KB/list/dragtest.aspx参考下这里 实际上我是想把A的一个成员变量给B 不知道是不是要想要WM_DROPFILES这个消息 这个消息该怎么用呢? 在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); 我明白了,楼主是想实现拖拽功能,就像windows的用鼠标拖拽文件的功能,我只知道怎样响应WM_DROPFILES消息,不知道如何发送WM_DROPFILES消息。 我只能告诉两点:1)老老实实用drag-drop功能.2)通过自己对clipboard剪切板操作实现 我的目的是,窗体AB实质上是一个图形界面,从本地的文件中打开的,我想在窗体之间通过拖拽使得图形能在一个窗体上覆盖显示。但WM_DROPFILES我只实现了从本地拖拽到窗体上,在两个子窗体上拖拽好像不响应。不知道这个问题该怎么弄? 继续求教,如何遍历CListCtrl里的数据 大家一般都是用什么工具查看内存泄露 listview弹出对话框后的刷新问题 请教,win32 api 编程中,WM_MENUDRAG消息的参数不明白,以及如响应?谢谢! 请教vc图形问题 在CDialog中怎样判断指定的CButton按纽是否处于按下和抬起状态? 再也不来了,把分散完 关于Serialize的数据读写的问题(在线) SDI拆分窗口中的视图动态切换后原来立体的窗口变为平面的了。 我很困惑的问题:若干个“烫烫烫烫烫烫烫烫” 请问各位,有没有拟合圆的较好的方法和代码,先谢了 "程序嵌套"
参考下这里
另外如果要发送消息的话,如下:
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);
2)通过自己对clipboard剪切板操作实现
我的目的是,窗体AB实质上是一个图形界面,从本地的文件中打开的,我想在窗体之间通过拖拽使得图形能在一个窗体上覆盖显示。
但WM_DROPFILES我只实现了从本地拖拽到窗体上,在两个子窗体上拖拽好像不响应。不知道这个问题该怎么弄?