首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> VC++专区 -> 文章内容 退出登录 用户管理
投票调查
栏目导航
· VC++专区 · V B 专区
· GIS 专区 · PDA 专区
· 其他编程 · 网站开发类
· 数据库类 · 软件应用
· 网络安全 · 论文专区
· 综合资讯
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· kalman filter 卡尔...
· Windows2000终端服务...
相关文章
创建自定义的消息
作者:Polaris  来源:开源盛世-源代码下载网  发布时间:2005-4-7 10:37:39  发布人:Polaris

减小字体 增大字体

    在以消息机制为核心的Windows系统下,通过消息传递可以帮助我们进行更为便捷的开发。但系统自带的ON_MESSAGE等消息的参数wParam、lParam等总是不能满足我们的特殊需要。因此有必要创建自己的消息映射宏。

一、创建消息映射宏

修改下面的宏,可以定义完全属于用户自己的消息映射宏:

#define ON_MY_MESSAGE(message,msgFunction)\

{\

  message,0,0,0,AfxSig_iis,\

  (AFX_PMSG)(AFX_PMSGW)\

  (int (AFX_MSG_CALL CWnd::*)(int,LPTSTR))\

  &memberFxn\

},

修改要点:

1、“\”符号为VC换行连接符。宏定义是需要在同一行显示的;

2、“message”为自己所定义的消息ID;

3、“msgFunction”为本消息映射宏对应的响应函数;

4、ON_MY_MESSAGE(message,msgFunction)中的参数可以自由按需增减;ON_MY_MESSAGE为宏名称,可像函数名一样按需修改;

5、“AfxSig_iis”为自定义宏映射的关键部分之一,它标识了响应函数的参数格式,如“AfxSig_iis”代表了响应函数的参数格式为:int (int,LPTSTR)、“AfxSig_lwl”代表了响应函数的参数格式为:LRESULT (WPARAM,LPARAM)。具体的参数格式定义可查找“AFXMSG_.H”文件;

6、隐秘的重点:笔者在参考书上查阅到的最后“}”后的符号为“”,编译时总是报错,经查阅Afxmsg_.h中的ON_MESSAGE消息宏格式,发现应为“”。不知是VC编译器版本不同,还是参考书有误,特此提出。

二、使用自定义宏

使用自定义宏就比较简单了

当然是先定义自己的消息ID

#define WM_MYMESSAGE WM_USER

然后消息消息响应函数

afx_msg int OnMyMsg(int nLen,LPTSTR sData);

int CMyClass::OnMyMsg(int nLen,LPTSTR sData)
{
 m_sInputString=m_sInputString+sData;
 return MY_OK;
}
最后在消息映射中添加我们的映射

BEGIN_MESSAGE_MAP(CSerialPort, CWnd)
 //{{AFX_MSG_MAP(CSerialPort)
  // NOTE - the ClassWizard will add and remove mapping macros here.
 ON_MY_MESSAGE(MYMESSAGE, OnMyMsg)
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

本文由开源盛世-源代码下载站长原创,转载请注明来源http://www.vscodes.com

 

打完收工!^_^

End of《创建自定义的消息》

[] [返回上一页] [打 印] [收 藏]
 
∷相关“创建自定义的消息”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.