各位老大,
现在已知lParam参数的具体意义
尚且不知wParam参数的具体意义
比如说哪一位到哪一位是做什么用的。
高字节从那里开始算起,
代表什么意义,
低字节又是怎样等等
哪位能知道告诉我?
谢谢
现在已知lParam参数的具体意义
尚且不知wParam参数的具体意义
比如说哪一位到哪一位是做什么用的。
高字节从那里开始算起,
代表什么意义,
低字节又是怎样等等
哪位能知道告诉我?
谢谢
解决方案 »
- 便用CArray 模板编译出错,错误信息:cannot convert parameter 1 from 'class CArray<class Record,class Record &>' to ...
- DirectShow的问题 如何又预览又采集压缩
- 从PDF里读取JPG图片文件,高手请支招!!
- VC之VFW接口问题
- DLL调用的问题,强烈加分!(在线等,急切)
- 如何能在dlg1中控制dlg2的某个对象属性和使用dlg2成员函数。
- 为什么编译通过,却无法运行??急
- vc6.0工程创建加载和使用.lib文件的问题
- 散分要理由吗?
- VC的IP控件如何透明
- 有没有这样的软件,对声卡录音
- 怎么在客户端closesocket()时通知服务端
高字节用HIWORD
合并用MAKEWORD
HWND hWndCtrl = (HWND)lParam; //Control handle
int nCode = HIWORD(wParam); //Notification code
16~23位代表扫描码,等等,
类似于这样,我只想知道wParam的各位代表什么意义。
lParam 和 wParam 不都是32位的消息参数么?
为什么在一般的函数当中都定义成
lParam为 LONG型
而wParam 却定义成UINT型呢?这两种型有什么区别?
下面是一些常用消息的相关信息.这些信息放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);
}