◆哪里有窗口消息、命令消息、通知消息、反射消息、钩子消息等各种消息处理的示例源码和讲解? 搞不明白,多谢指导! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 介绍一个好的网站 http://www.vckbase.com/up www.codeproject.com上有几篇不错的文章 csdn!!!问渠哪得清如水,惟有源头活水来! 网上最多只有sendmessage,postmessage的讲解而已 Windows 95 程式设计指南 讲钩子vc扩展编程实例 窗口消息、命令消息、通知消息、反射消息,讲的很清楚,网上都有ebook深入浅出MFC。也不错 www.vchelp.com www.vckbase.comup 对消息反射我也不是很清楚只稍略看过msdn上介绍,不求甚解 MSDN, 还有95年出的WIN32程序员参考大全一套书,是MSDN的翻译版~~~~~~ 有的时候,我们开发了一套很有市场价值的软件,可是发觉市场销售量却很低,原来真正的原因是软件的包装不够漂亮。公司采取各种渠道来解决问题。招聘大量的美工人员,可是,却发觉程序员的水平跟不上步伐,专门设立一个研究部门,却发觉需要花费巨额的人力物力,采用第三方控件吧,却要支费大量的注册费用或者版权使用费用,而且一般都以动态链接库*.DLL 或者控件*.OCX 绑定到我们的软件中。并且,控件功能扩展需要花费一定的升级费用才能够实现。您希望一次花费为数不多的费用就能弥补所有的不足吗...皮肤类不以任何形式的控件*.OCX,动态链接库*.DLL出售给用户,所以,你不必担心是否以源代码的方式出售给用户 皮肤工作室皮肤类(VC开发企业版)暑假期间正在热销中,优惠活动截至到2003.9月。售价仅仅人民币-元整(终身使用版权);并且,在功能上可以任意扩展,真可谓手到擒来。具体包括皮肤对话框,皮肤按扭,皮肤进度条,皮肤控制条,皮肤动画标签类,皮肤面版类... 全部功能都以源代码的方式出售,使你可以制作真正意义上的具有自主版权皮肤功能的软件,还在等什么,赶快行动吧!!! 真正令我们心动的时刻到了,同时随送的一些经典皮肤示例源代码包括多彩取色机XP,鼠标记录机,多彩影音伴侣等等你如果希望购买我们的产品,请到我们网站的购买方式页面 http://www.skin-studio.com/ PreTranslateMessage函数顾名思义,就是在消息被翻译之前,做的一些事.我们可以屏蔽一个键或一个命令.下面是一些常用消息的相关信息.这些信息放pMsg中.WM_KEYDOWN nVirtKey = (int) wParam; /*虚键值,和ascll码有许多相同的地方 */ lKeyData = lParam; /*和硬件有关 */ WM_CHAR chCharCode = (TCHAR) wParam; lKeyData = lParam; WM_COMMAND wNotifyCode = HIWORD(wParam); wID = LOWORD(wParam); hwndCtl = (HWND) lParam; WM_LBUTTONDOWN fwKeys = wParam; // xPos = LOWORD(lParam); // 鼠标横坐标yPos = HIWORD(lParam); // 鼠标纵坐标 fwKeys MK_CONTROL MK_LBUTTON MK_MBUTTON MK_RBUTTON MK_SHIFT WM_MOUSEMOVE fwKeys = wParam; xPos = LOWORD(lParam); yPos = HIWORD(lParam); 下面这个例子演示了,PreTranslateMessage的常用用法.BOOL CPreTranslateDlg::PreTranslateMessage(MSG* pMsg) { if(WM_KEYDOWN == pMsg->message ) if(0x30 == (int) pMsg->wParam) { return true; /*禁止在编辑框中输入0(ascll 0x30)*/ } if(WM_CHAR == pMsg->message ) if('A' == (TCHAR) pMsg->wParam) { return true; /*禁止在编辑框中输入'A'*/ } if(WM_MOUSEMOVE == pMsg->message) if(MK_CONTROL & pMsg->wParam) /*当ctrl被按下鼠标移动时,显示相关信息*/ { int xPos = LOWORD(pMsg->lParam); int yPos = HIWORD(pMsg->lParam); CString str ; str.Format("鼠标的坐标%d %d",xPos,yPos); AfxMessageBox(str); } if(WM_COMMAND == pMsg->message) if(ID_1 == LOWORD(pMsg->wParam))//禁止菜单项ID_1,注意按钮发送的是BN_CLICKED { return true; } return CDialog::PreTranslateMessage(pMsg);} MFC WINDOWS程序设计都有实例除了钩子消息,看看 深入浅出MFC ,有一点介绍 截取窗体图! Socket 问题 菜单加单击事件问题 一点击List控件就报错 网络编程是不是VC最强?小弟菜鸟请教大家! 如何将Picture类型的控件中的画的线全部清空。 CDateTimeCtrl 控件要用到那个dll啊? ... 有关FindWindow的用法 急!关于多媒体文件格式的确认!(BMP,AVI等) 如何在系统默认的《撤消¦剪切¦复制¦粘贴¦删除¦全选》的弹出菜单菜单里增加自己的项目? 寻找VC解析XML的例子,谢谢!(第一次来) 为什么出错呀???
up
问渠哪得清如水,惟有源头活水来!
vc扩展编程实例 窗口消息、命令消息、通知消息、反射消息,讲的很清楚,网上都有ebook
深入浅出MFC。也不错
www.vckbase.comup
只稍略看过msdn上介绍,不求甚解
还有95年出的WIN32程序员参考大全一套书,是MSDN的翻译版~~~~~~
皮肤工作室皮肤类(VC开发企业版)暑假期间正在热销中,优惠活动截至到2003.9月。售价仅仅人民币-元整(终身使用版权);并且,在功能上可以任意扩展,真可谓手到擒来。具体包括皮肤对话框,皮肤按扭,皮肤进度条,皮肤控制条,皮肤动画标签类,皮肤面版类... 全部功能都以源代码的方式出售,使你可以制作真正意义上的具有自主版权皮肤功能的软件,还在等什么,赶快行动吧!!!
真正令我们心动的时刻到了,同时随送的一些经典皮肤示例源代码包括多彩取色机XP,鼠标记录机,多彩影音伴侣等等
你如果希望购买我们的产品,请到我们网站的购买方式页面 http://www.skin-studio.com/
下面是一些常用消息的相关信息.这些信息放pMsg中.
WM_KEYDOWN
nVirtKey = (int) wParam; /*虚键值,和ascll码有许多相同的地方 */
lKeyData = lParam; /*和硬件有关 */
WM_CHAR
chCharCode = (TCHAR) wParam;
lKeyData = lParam;
WM_COMMAND
wNotifyCode = HIWORD(wParam);
wID = LOWORD(wParam);
hwndCtl = (HWND) lParam;
WM_LBUTTONDOWN
fwKeys = wParam; //
xPos = LOWORD(lParam); // 鼠标横坐标
yPos = HIWORD(lParam); // 鼠标纵坐标
fwKeys
MK_CONTROL MK_LBUTTON MK_MBUTTON MK_RBUTTON MK_SHIFT
WM_MOUSEMOVE
fwKeys = wParam;
xPos = LOWORD(lParam);
yPos = HIWORD(lParam);
下面这个例子演示了,PreTranslateMessage的常用用法.
BOOL CPreTranslateDlg::PreTranslateMessage(MSG* pMsg)
{
if(WM_KEYDOWN == pMsg->message )
if(0x30 == (int) pMsg->wParam)
{
return true; /*禁止在编辑框中输入0(ascll 0x30)*/
} if(WM_CHAR == pMsg->message )
if('A' == (TCHAR) pMsg->wParam)
{
return true; /*禁止在编辑框中输入'A'*/
}
if(WM_MOUSEMOVE == pMsg->message)
if(MK_CONTROL & pMsg->wParam) /*当ctrl被按下鼠标移动时,显示相关信息*/
{
int xPos = LOWORD(pMsg->lParam);
int yPos = HIWORD(pMsg->lParam);
CString str ;
str.Format("鼠标的坐标%d %d",xPos,yPos);
AfxMessageBox(str);
} if(WM_COMMAND == pMsg->message)
if(ID_1 == LOWORD(pMsg->wParam))//禁止菜单项ID_1,注意按钮发送的是BN_CLICKED
{
return true;
}
return CDialog::PreTranslateMessage(pMsg);
}