Chinaunix首页 | 论坛 | 博客
  • 博客访问: 455037
  • 博文数量: 724
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(724)

文章存档

2011年(1)

2008年(723)

我的朋友

分类:

2008-10-13 17:23:21


除非派生自CWnd,否则直接派生自CCmdtarget的类是无法使用ON_MESSAGE宏的,怎么可以用这个宏来了事?
ON_COMMAND自定义消息处理函数中无法利用wParam或lParam参数根本原因在于它的定义:
#define ON_COMMAND(id, memberFxn) 
{
    WM_COMMAND,
    CN_COMMAND,
    (WORD)id,
    (WORD)id,
    AfxSig_vv,
    (AFX_PMSG)memberFxn
};
看见AfxSig_vv标志了吗?它表示与ON_COMMAND关联的消息函数没有参数,且没有返回值。
( James007 发表于 2006-3-20 21:44:00)

Ø vc.net 中调试出错:
error C2440: “static_cast” : 无法从“void (__thiscall CUserDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”

Ø 修改为 afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam)后运行正常
Ø  [ afx_msg void OnMyMessage(WPARAM wParam, LPARAM lParam)进行自定义消息的处理函数声明,这个声明一定要放在DECLARE_MESSAGE_MAP()宏之前 ],好像不正确,在VC.Net中调试时,放在前后都没有关系的,程序一切正常
( vspath 发表于 2004-5-24 16:33:00)

傅梵科技免费商业模版下载
专题网商业模版下载, 全部含有FLA、PSD、HTML文件! 
请大家支持,注册回复回复!还有更好的等你下呢!

论坛没有人气,请大家多多支持!

需要注册下载:P,不好意思了!

★论坛从即日起每天提供1到5套商业模版

★本站提供所有商业模版均含有fla、psd源文件
论坛管理人员初步讨论通过:论坛计划有偿收集国内一些设计师的作品源文件(设计过程中保留下来的各种有用的PSD,FLA,文件)然后再加以加工,甚至辅之以后台。计划这样的作品能达到千个以上,另外也打算收集一些设计师在设计过程中因各种原因,没有能在网上发布的作品,再经过深加工,使之符合大众的口味。另外汉化国外一些顶级的商业模板,这样的模板也要能达到千个以上,并且深加工成为国内喜欢的配色,版式,并更加方便修改的样式。并且所有商业模版免费为大家提供!

★当然这一切也需要大家的努力和支持!

★有什么好的想法和建议请放到站管处理区,管理人员会及时回复您!对于有贡献的朋友,我们适当时候会有实物奖励!

★您的回复就是我们发展的动力

下载地址:
( kkezhang 发表于 2004-3-20 12:04:00)

傅梵科技免费商业模版下载
专题网商业模版下载, 全部含有FLA、PSD、HTML文件! 
请大家支持,注册回复回复!还有更好的等你下呢!

论坛没有人气,请大家多多支持!

需要注册下载:P,不好意思了!

★论坛从即日起每天提供1到5套商业模版

★本站提供所有商业模版均含有fla、psd源文件
论坛管理人员初步讨论通过:论坛计划有偿收集国内一些设计师的作品源文件(设计过程中保留下来的各种有用的PSD,FLA,文件)然后再加以加工,甚至辅之以后台。计划这样的作品能达到千个以上,另外也打算收集一些设计师在设计过程中因各种原因,没有能在网上发布的作品,再经过深加工,使之符合大众的口味。另外汉化国外一些顶级的商业模板,这样的模板也要能达到千个以上,并且深加工成为国内喜欢的配色,版式,并更加方便修改的样式。并且所有商业模版免费为大家提供!

★当然这一切也需要大家的努力和支持!

★有什么好的想法和建议请放到站管处理区,管理人员会及时回复您!对于有贡献的朋友,我们适当时候会有实物奖励!

★您的回复就是我们发展的动力

下载地址:
( kkezhang 发表于 2004-3-20 12:04:00)

我认为这个说法是不正确的
1) ON_COMMAND是可以处理参数的,当然,不能在函数参数中传,而是该使用GetCurrentMessage  获得当前消息然后处理lParam和wParam,当然用ON_MESSAGE更方便
2) 指针参数使用有一定限制,如果使用SendMessage可以直接使用,但是如果是PostMessage,那么必须保证消息处理完前不得修改、删除此指针,比较好的方法是new一个指针然后传过去,然后由消息处理函数delete
3) ON_MESSAGE对应的消息处理函数应该返回LRESULT
4)跨进程消息如果是自定义消息,不允许传指针 ( 阿荣 发表于 2004-3-17 16:13:00)

把该消息的处理函数返回值改为:LRESULT 试一下! ( yyong 发表于 2004-2-3 10:34:00)

同一进程中应该没问题哈,可能是你哪里写错了,这个消息用得多了,指针什么的都传过,
这个ON_MESSAGE()与ON_COMMAND()还有区别,没根本的区别吧? ( zgm78 发表于 2004-2-3 8:47:00)

这是在同一进程内部实现的消息发送,旨在讲解ON_MESSAGE()与ON_COMMAND()宏的区别 ( Abbey 发表于 2004-2-2 20:17:00)

你是在一个进程中的消息还是不同进程中的消息呢? ( zgm78 发表于 2004-2-2 14:00:00)

.......................................................

--------------------next---------------------

阅读(225) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~