自定义 消息 问题

dlliulla 2011-05-04 07:30:51
1. 定义全局变量或宏


#define WM_MyMessage (WM_USER + n)

n为数字到少大于100
或者用 const UINT WM_MYMESSAGE = WM_USER + n
一般可以加在stdafx.h 或resource.h 或*.app.h中。
他们都是全局变量头文件所以都可以.

2. 在所在类的*.H文件增加消息函数声明.


protected:
//{{AFX_MSG(CChildView)

afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);

//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

3.在所在类的实现文件*.CPP文件中增加消息映射 和实现消息处理函数

BEGIN_MESSAGE_MAP(CChildView,CWnd )
//{{AFX_MSG_MAP(CChildView)

ON_MESSAGE(WM_MyMessage, OnMyMessage)

//}}AFX_MSG_MAP
END_MESSAGE_MAP()


也就是说WM_MyMessage消息对应OnMyMessage函数

LRESULT 类名::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
return 0;
}

如上,在网上找的步骤,看不太懂,但都是按上面说的做的,但是在运行时会出现
错误 1 error C2065: “OnMyMessage”: 未声明的标识符 c:\documents and settings\administrator\桌面\xinling\xinling\xinlingdlg.cpp 43 xinling

求解
...全文
469 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlliulla 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 visualeleven 的回复:]
你用的IDE是VS05,08 or 2010的吧
[/Quote]
我用的是VS08,网上找的程序,运行不了……
ysjyniiq 2011-05-04
  • 打赏
  • 举报
回复
用VS2010的wizard添加自定义消息,极方便,只需要定义宏
  • 打赏
  • 举报
回复
 自定义消息的写法
a) #define WM_XXXX WM_USER+2000
b) 在.h文件中
//}}AFX_MSG
afx_msg LRESULT OnFunc(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP
c) 在.cpp文件中
BEGIN_MESSAGE_MAP(…, …)

//}}AFX_MSG_MAP
ON_MESSAGE(WM_XXXX, OnFunc)
END_MESSAGE_MAP()
d) 声明函数在.cpp中
LRESULT ….::OnFunc(WPARAM wParam, LPARAM lParam)
{
return 0;
}
Eleven 2011-05-04
  • 打赏
  • 举报
回复
你用的IDE是VS05,08 or 2010的吧
海盗医生 2011-05-04
  • 打赏
  • 举报
回复
ON_MESSAGE(WM_MyMessage, OnMyMessage)

修改为:

ON_MESSAGE(WM_MyMessage, &CChildView::OnMyMessage)


VC6.0没有这样限制,之后的版本应该都有了,跟SDK有关
疯狂-的-蜗牛 2011-05-04
  • 打赏
  • 举报
回复
ON_MESSAGE()里面形式错了
kusey 2011-05-04
  • 打赏
  • 举报
回复

ON_MESSAGE( WM_MyMessage, &类名::OnMyMessage )
(

16,472

社区成员

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

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

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