MFC如何实现消息循环?

phthegreat 2008-09-19 06:15:34
如果一个DLL调用SendMessage向调用这个DLL的MFC发送消息,这个MFC该怎样接收并且处理消息呢?这个消息循环该怎么写?可不可以给出一个简单的例子?
...全文
301 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
phthegreat 2008-09-20
  • 打赏
  • 举报
回复
结贴!谢谢!
yafizyh 2008-09-19
  • 打赏
  • 举报
回复
《深入浅出mfc》里面详细讲述了消息在mfc里面是如何循环的。具体到你的问题,发给cXXXapp吧,然后再在mfc里面循环,那就自己控制了。
sanshao27 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cnzdgs 的回复:]
不知道你在说什么。通常说的消息循环是这样的代码:
MSG msg;
BOOL bRet;
while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
另外MFC是微软基础类库的意思,SendMessage是给窗口发消息,不是给MFC发消息。
[/Quote]

专家意见,同意
wutaihua 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cnzdgs 的回复:]
不知道你在说什么。通常说的消息循环是这样的代码:
MSG msg;
BOOL bRet;
while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
另外MFC是微软基础类库的意思,SendMessage是给窗口发消息,不是给MFC发消息。
[/Quote]


这个是深入浅出MFC中讲的windows消息循环的基本构架。。
楼主建议你去卡看《深入浅出MFC》
jameshooo 2008-09-19
  • 打赏
  • 举报
回复
AfxGetApp()->PumpMessage(); 就是启动一个消息循环
yc_8301 2008-09-19
  • 打赏
  • 举报
回复
来晚了。。
支持 oo_v_oo

ON_COMMAND(消息ID,消息函数)
binjuny 2008-09-19
  • 打赏
  • 举报
回复
同意cnzdgs
基本上都是这种处理的
cnzdgs 2008-09-19
  • 打赏
  • 举报
回复
不知道你在说什么。通常说的消息循环是这样的代码:
MSG msg;
BOOL bRet;
while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
另外MFC是微软基础类库的意思,SendMessage是给窗口发消息,不是给MFC发消息。
xuxingok 2008-09-19
  • 打赏
  • 举报
回复
mark
wangweixing2000 2008-09-19
  • 打赏
  • 举报
回复
楼上两种都可以
oo_v_oo 2008-09-19
  • 打赏
  • 举报
回复
在DLL某函数中
#define IDC_NEED_SEND_MESSAGE 300
void function(HWND hwnd,...) {
...
::SendMessage(hwnd,WM_COMMAND,IDC_NEED_SEND_MESSAGE,(LPARAM *)0);
...
}

在主程序中
#define IDC_NEED_SEND_MESSAGE 300
... //消息声明中,可以使用向导生成
ON_COMMAND(IDC_NEED_SEND_MESSAGE,OnNeedSendMessage)
...

CXXXView::OnNeedSendMessage() {
}
wltg2001 2008-09-19
  • 打赏
  • 举报
回复
MFC是利用各种宏来处理消息循环的,如果是自定义消息写作ON_MESSAGE(....)即可,然后加上消息处理函数

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧