怎么才能在自己定义的类中处理消息?

Sunlet 2000-09-09 05:50:00
怎么才能在自己定义的类中(而不是wnd类中)处理消息?包括wm_command消息和一般的windows 消息。
...全文
265 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldworm 2000-09-25
  • 打赏
  • 举报
回复
如果对于自定义消息,如下
.h文件
afx void OnAAA(WPARAM wParam, LPARAM lParam);

.cpp文件
消息映射
ON_MESSAGE(WM_AAA, OnAAA)

代码实现
afx void CXXX::OnAAA(WPARAM wParam, LPARAM lParam)
{
}
当然返回值不一定是void
hjcao_wei 2000-09-25
  • 打赏
  • 举报
回复
很简单,消息loop在CYourApp中,你想怎摸分配就怎摸分配,能不能用MFC的Message Map技术看你的本领:(下面是个大概,函数名不一定对)
重载CYourApp::Run
{
while(getmassage())
{
translatemsg();
if(yourclass.msg())
continue;
dispachmsg();
}
}
lgs 2000-09-25
  • 打赏
  • 举报
回复
如果处理窗口类(CWnd子类)的命令消息WM_COMMAND,不从CWnd或其子类继承也行。
坎坷的菜贩 2000-09-25
  • 打赏
  • 举报
回复
同意Holly的说。
Holly 2000-09-24
  • 打赏
  • 举报
回复
Sorry!
...
//{{AFX_MSG_MAP(CMainFrame)
...
这一句的CMainFrame也应是你自己的类
Holly 2000-09-24
  • 打赏
  • 举报
回复
准确的说!
有两种类可以处理消息映射!
一个是CWnd继承下来的,一个是CWinThread继承下来的,关键在于:
//h文件中的
DECLARE_MESSAGE_MAP()//MFC宏;
//cpp文件中的
BEGIN_MESSAGE_MAP(??, ??)
//{{AFX_MSG_MAP(CMainFrame)
...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
lgs 2000-09-24
  • 打赏
  • 举报
回复
消息一般都由Windows操作系统向窗体发送,也就是说,只有窗体句柄的对象才能接收消息,所以你自定义的类,要么从CWnd累或其子类派生,要么你自己做出一套与MFC类似的类库,但类里面必须具有HWND类型的成员变量作为消息的接收对象。
CoolHg 2000-09-24
  • 打赏
  • 举报
回复
先Copy 即把Wizard生成的消息copy到你的类中 再好好研究研究改改
CoolHg 2000-09-24
  • 打赏
  • 举报
回复
先Copy 即把Wizard生成的消息映射copy到你的类中 再好好研究研究改改
Sniper 2000-09-09
  • 打赏
  • 举报
回复
对不起
Sunlet 2000-09-09
  • 打赏
  • 举报
回复
那么CDocument什么可以处理消息,至少是命令消息吧
还有,msdn中说从CCmdTarget中派生的类可以处理消息
celxta 2000-09-09
  • 打赏
  • 举报
回复
首先定义消息:#define WM_USER+x;x由具体情况定义,为一整数,再在头文件中用afx ...定义函数,在cpp文件中定义消息映射,最后编写函数实体
Sniper 2000-09-09
  • 打赏
  • 举报
回复
如果要直接处理消息,你的类的基类必须是CWnd或其导出类。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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