Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261718
  • 博文数量: 71
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-16 13:07
个人简介

我喜欢蓝天,也喜欢雨天。

文章分类

全部博文(71)

文章存档

2014年(14)

2013年(57)

分类: Windows平台

2013-08-16 15:16:53

键盘

 1.键盘消息分为击键和字符。

2.系统击键和非系统击键。

WM_KEYDOWN         WM_KEYUP

WM_SYSKEYDOWN  WM_SYSKEYUP

3.虚拟键码保存在WM_KEYDOWN WM_KEYUP WM_SYSKEYDOWN WM_SYSKEYUP消息的wParam参数中。为了实现与设备无关。

case WM_KEYDOWN:

switch(wParam)

{

case VK_HOME:

.....

}

4.lParam的32位分为6个域:重复计数,OEM扫描码,扩展键标志,环境代码,键的先前状态,转换状态。

5.插入符:

CreateCaret 创建与窗口有关的插入符

SetCaretPos 在窗口中设置插入符的位置

ShowCaret  显示插入符

HideCaret   隐藏

DestroyCaret 撤销


鼠标

 1.查看鼠标是否存在:fMouse = GetSystemMetrics(SM_MOUSEPRESENT);

确定所安装鼠标的个数:cButton = GetSystemMetrics(SM_CMOUSEBUTTONS);

2.当定义窗口类结构时指定特定窗口的默认光标:wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);

3.客户区鼠标消息:

按下                                  释放                            双击键

左 WM_LBUTTONDOWN     WM_LBUTTONUP    WM_LBUTTONDBLCLK

中 WM_MBUTTONDOWN   WM_MBUTTONUP    WM_MBUTTONDBLCLK

右 WM_RBUTTONDOWN    WM_RBUTTONUP     WM_RBUTTONDBLCLK

lParam 值含有鼠标的位置

x = LOWORD(lParam);

y = HIWORD(lParam);

4.wParam 和 MK_LBUTTON进行按位与,来确定是否按下了左键。

5.非客户区鼠标消息

按下                                           释放                           双击键

左 WM_NCLBUTTONDOWN       WM_NCLBUTTONUP                    WM_NCLBUTTONDBLCLK

中 WM_NCMBUTTONDOWN      WM_NCMBUTTONUP                  WM_NCMBUTTONDBLCLK

右 WM_NCRBUTTONDOWN       WM_NCRBUTTONUP                   WM_NCRBUTTONDBLCLK

lParam参数包含低位字的x坐标和高位字的y坐标,但是是屏幕坐标。可用下面函数转化:

ScreenToClient(hwnd, &pt);

ClientToScreen(hwnd, &ps);

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