Windows程序设计之键盘和鼠标

一、键盘
1.1.应用程序从Windows接收的键盘消息分为击键消息和字符消息.
1.可显示字符的击键:Windows不仅给程序发送按键消息,而且还发送字符消息
2.无显示字符的击键:包括shift键、功能键、光标移动键和特殊字符键如Insert和Delete, Windows只产生按键消息。

1.2击键消息
wParam是虚拟键代码,数字键和字母键的虚拟键码是ASCII码.
1.系统击键(WM_SYSKEYDOWN,WM_SYSKEYUP)
系统击键常由与Alt相组合的击键产生.Windows通常忽略系统击键消息,并将它们传送给DefWindowProc处理.
 
2.非系统击键(WM_KEYDOWN,WM_KEYUP)
非系统击键消息是在按下或者释放不带Alt键的键时产生的,应用程序可以使用或者忽略这些消息,Windows本身并不处理这些消息。

1.3字符消息

1.消息循环中的TranslateMessage函数将击键消息转换为字符消息
2.分类
(1)系统字符:WM_SYSCHAR,WM_SYSDEADCHAR  <--WM_SYSKEYDOWN
(2)非系统字符:WM_CHAR,WM_DEADCHAR      <--WM_KEYDOWN

3.大多数情况下,Windows程序会忽略除WM_CHAR之外的任何消息.
4.字符消息是夹在击键消息之间传递给窗口过程函数的.

二、鼠标
2.1简单定义
1.鼠标光标:当Windows用户移动鼠标时,Windows在显示器上移动一个称为鼠标光标的小位图。
2.热点:鼠标光标有一个指向显示器上精确位置的单像素即热点。热点的位置就是鼠标光标在屏幕上的位置.
3.鼠标光标可以使用Windows预定义光标,也可以自定义光标.
Windows预定义鼠标光标:
IDC_ARROW
IDC_CROSS
IDC_WAIT

2.2鼠标消息分类

1.客户区鼠标消息(10个)
如:WM_MOUSEMOVE,WM_LBUTTONDOWN,WM_RBUTTONDOWN,WM_LBUTTONDBLCLK
(1)对客户区鼠标消息来说,lParam值含有鼠标的位置:低位字为x坐标,高位字为y坐标(相对于窗口客户区左上角)可使用LOWORD和HIWORD宏来提取鼠标位置坐标:
x=LOWORD(lParam);
y=HIWORD(lParam);

(2)wParam值指示鼠标键和Shift和Ctrl键的状态

2.非客户区鼠标消息(11个)
(1)通常,Windows应用程序不必处理非客户区鼠标消息,将这些消息传递给DefWindowProc
(2)lParam参数包含低位字的x坐标和高位字的y坐标(屏幕坐标)
客户区坐标和屏幕坐标的转换
ScreenToClient(hwnd,&pt);
ClientToScreen(hwnd,&pt);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值