分割界面后不同类之间的的自定义消息传第 消息窗体分割通信 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PostMessage(WM_MY_MESSAGE,50,30);::PostMessage(hWnd, WM_MY_MESSAGE,50,30);知道 hWnd 就可以 发。CMainFrame AfxGetMainWndCFormView和CView类:CMainFrame *pMainWnd->m_hwndSplitter.GetPane() 可以说清楚点吗?::PostMessage(hWnd, WM_MY_MESSAGE,50,30);那个hWnd是指目标窗口的句柄吗?那如何在CFormView里获得CView的句柄呢?CMainFrame *pMainWnd->m_hwndSplitter.GetPane()这句话什么意思呢? 根本不需要去使用SendMessage两个类分别定义处理消息的函数,当类的消息发生的时候都将消息传递给FrameWnd类或者获取FrameWnd的窗口指针,通过该指针调用一个处理方法A,由FrameWnd类处理方法A具体的调用CView或者CFormView的消息处理函数 “CMainFrame *pMainWnd->m_hwndSplitter.GetPane()这句话什么意思呢?”你不是分割 窗口 了吗?那么 分割后的 窗口 可以 用 m_hwndSplitter 的 GetPane(0,0) 或 (0,1) 来 获取。所以 在 mainframe 写 2个 函数 :如:CFormView * CMainFrm::GetLeftPane(){ return (CFormView *)m_Splitter.GetPane(0,0); // 0 行 0 列。} CView1 *pView1 = (CView1*)(((CMainFrame *)AfxGetMainWnd())->m_wndSplitter.GetPane(0,1)); ::PostMessage(pView1->GetSafeHwnd(),WM_MY_MESSAGE,50,30);我用这个方法得到了目标的句柄然后成功了,你说的那两个函数我老是建不起来不知为什么,还是很多谢你,一会给分你。我还想学一下其它方法 打个比方有CMainFrame类 方法A有CView类 方法B (处理消息的函数)有CFormView类 方法C(处理消息的函数)你是说当要交换数据时通过方法A 来调用 方法B和方法C吗?是这样的意思吗?我看不太明白,请说详细点,多谢! CView1 *pView1 = (CView1*)(((CMainFrame *)AfxGetMainWnd())->m_wndSplitter.GetPane(0,1));也可以。在 MainFrame 写 就是:CView1 * CMainFrame:: GetView1{ return (CView1*)(m_wndSplitter.GetPane(0,1));} 打个比方有CMainFrame类 方法A有CView类 方法B (处理消息的函数)有CFormView类 方法C(处理消息的函数)你是说当要交换数据时通过方法A 来调用 方法B和方法C吗?是这样的意思吗?我看不太明白,请说详细点,多谢!是这个意思 MFC怎么使对话框初始化即不显示 请教WaitForMultipleObjects返回值,怎么不能是WAIT_OBJECT_0 +1 关于mfc类库 按钮触发的问题,等...??? 关于mfc系统OnXX()返回值的问题 ★★★★★还是几个问题,回答每个都有分^o^ 大字段 怎样在程序中给WIN98/ME添加一个用户? 请教:对话框中什么控件可以曲线? 请高手帮帮我!我真不知道怎么回事? 64位软件32位软件区别 pictrure control显示本地图片
::PostMessage(hWnd, WM_MY_MESSAGE,50,30);
知道 hWnd 就可以 发。CMainFrame
AfxGetMainWndCFormView和CView类:
CMainFrame *pMainWnd->m_hwndSplitter.GetPane()
可以说清楚点吗?
::PostMessage(hWnd, WM_MY_MESSAGE,50,30);
那个hWnd是指目标窗口的句柄吗?那如何在CFormView里获得CView的句柄呢?
CMainFrame *pMainWnd->m_hwndSplitter.GetPane()这句话什么意思呢?
当类的消息发生的时候都将消息传递给FrameWnd类或者获取FrameWnd的窗口指针,通过该指针调用一个处理方法A,由FrameWnd类处理方法A具体的调用CView或者CFormView的消息处理函数
那么 分割后的 窗口 可以 用 m_hwndSplitter 的 GetPane(0,0) 或 (0,1) 来 获取。
所以 在 mainframe 写 2个 函数 :如:
CFormView * CMainFrm::GetLeftPane()
{
return (CFormView *)m_Splitter.GetPane(0,0); // 0 行 0 列。
}
CView1 *pView1 = (CView1*)(((CMainFrame *)AfxGetMainWnd())->m_wndSplitter.GetPane(0,1));
::PostMessage(pView1->GetSafeHwnd(),WM_MY_MESSAGE,50,30);
我用这个方法得到了目标的句柄然后成功了,你说的那两个函数我老是建不起来不知为什么,还是很多谢你,一会给分你。我还想学一下其它方法
有CMainFrame类 方法A
有CView类 方法B (处理消息的函数)
有CFormView类 方法C(处理消息的函数)你是说当要交换数据时通过方法A 来调用 方法B和方法C吗?是这样的意思吗?
我看不太明白,
请说详细点,
多谢!
也可以。在 MainFrame 写 就是:
CView1 * CMainFrame:: GetView1
{
return (CView1*)(m_wndSplitter.GetPane(0,1));
}
有CMainFrame类 方法A
有CView类 方法B (处理消息的函数)
有CFormView类 方法C(处理消息的函数)你是说当要交换数据时通过方法A 来调用 方法B和方法C吗?是这样的意思吗?
我看不太明白,
请说详细点,
多谢!是这个意思