社区
界面
帖子详情
为什么不能直接从对话框类往视图类传自定义的消息么??
hz31
2003-09-12 11:06:56
我看的一个东东里面,要求先把对话框的消息,传到主框架里面..再传到视图类里面???为什么不能从对话框类直接发送消息到视图呢?我这样做的时候总是出错...!!!!!!是不是这是要求遵从windows的消息传递机制啊??????
...全文
26
5
打赏
收藏
为什么不能直接从对话框类往视图类传自定义的消息么??
我看的一个东东里面,要求先把对话框的消息,传到主框架里面..再传到视图类里面???为什么不能从对话框类直接发送消息到视图呢?我这样做的时候总是出错...!!!!!!是不是这是要求遵从windows的消息传递机制啊??????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tryber
2003-09-13
打赏
举报
回复
gzshd(郁闷) ( ) 信誉:105 2003-09-12 23:54:00 得分:0
如下:
#include "MainFrm.h"
#include "MyView.h"
...
CMainFrame *pframe=(CMainFrame *)AfxGetMainWnd();
CMyView *pview=(CMyView *)pframe->GetActiveView();
pview.SendMessage(...);
...
//用完后不要忘了delete
delete pframe;
delete pview;
pframe=NULL;
pview=NULL;
啊,这两句看得我心惊肉跳,
delete pframe;
delete pview;
是你发错了,还是我看错了。
有那么麻烦吗?
//myview.cpp
void CMyView::OnDlgMsg()
{
CxxxDlg dlg(this);
...
}
//xxxdlg.cpp
void CxxxDlg::OnViewMsg()
{
这样就可以直接从对话框中给这个视图发送消息了
::SendMessage(GetParent()->GetSafeHwnd(), ...);
}
gzshd
2003-09-12
打赏
举报
回复
如下:
#include "MainFrm.h"
#include "MyView.h"
...
CMainFrame *pframe=(CMainFrame *)AfxGetMainWnd();
CMyView *pview=(CMyView *)pframe->GetActiveView();
pview.SendMessage(...);
...
//用完后不要忘了delete
delete pframe;
delete pview;
pframe=NULL;
pview=NULL;
flyelf
2003-09-12
打赏
举报
回复
我的意思就是说,可以在你的对话框中声明这么一个变量HWND m_hWndView;
然后在视图中弹出对话框的时候,给对话框的这个变量赋值
CxxxDlg dlg;
dlg.m_hWndView = GetSafeHwnd();// 得到视图的指针
这样就可以直接从对话框中给这个视图发送消息了
::SendMessage(m_hWndView, ...)
hz31
2003-09-12
打赏
举报
回复
谢谢!那你的意思是直接可以在这两个类间传递?可是那个句柄是先包含视图类的引用#include CMyView ;再在头文件中定义一个实例CMyView viw;然后再在对话框类中使用viw.sendmessage()不就可以嘛?
flyelf
2003-09-12
打赏
举报
回复
可能是你没有得到正确的视图类的窗口句柄
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章