GetSystemMetrics(SM_CYCAPTION) //可以获得 标题栏的 高度
GetSystemMetrics(SM_CMOUSEBUTTONS) //获得鼠标上安装的按键的个数 如果没安装那么返回 0
int fMouse = GetSystemMetrics (SM_MOUSEPRESENT) ; //此函数 来确定 滑鼠是否存在 存在返回非0也就是TRUE 不存在返回0 也就是FALSE
下面是一些描述滑鼠按键动作的术语:
Clicking 按下并放开一个滑鼠按键
Double-clicking 快速按下并放开滑鼠按键两次。
Dragging 按住滑鼠按键并移动滑鼠。
对三键滑鼠来说,三个键分别称为左键、中键、右键。在Windows表头档案中定义的与滑鼠有关的识别字使用缩写LBUTTON、MBUTTON和RBUTTON。双键滑鼠只有左键与右键,单键滑鼠只有一个左键。
windows的基本鼠标消息
表7-1 |
键 | 按下 | 释放 | 按下(双键) |
---|---|---|---|
左 | WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK |
中 | WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK |
右 | WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK |
对于传递的参数 lParam 是 鼠标的x 坐标喝 y坐标 低位保存了鼠标的 x 高位保存了 鼠标的y
xPos=LOWORD(lParam)
yPos=HIWORD(wParam)
屏幕的分辨率就是 屏幕的左上角到右下角的 度量
wParam的值指示滑鼠按键以及Shift和Ctrl键的状态。您可以使用表头档案WINUSER.H中定义的位元遮罩来测试wParam。MK字首代表「滑鼠按键」。 具体MSDN WM_LBUTTONDOWN
MK_LBUTTON | 按下左键 |
MK_MBUTTON | 按下中键 |
MK_RBUTTON | 按下右键 |
MK_SHIFT | 按下Shift键 |
MK_CONTROL | 按下Ctrl键 |
那个窗体是活动窗体 那个就会获得 鼠标消息 但也有可能窗体 没有 鼠标单击消息 就获得了鼠标 UP的消息 这是因为在一个活动窗体上 单击鼠标 不松开然后移动到另一个窗体上松开 鼠标就会出现这样的情况
int ShowCursor( BOOL bShow // cursor visibility); 显示或隐藏 Cursor
SetCursor 设置光标
SetPixel为画点函数
wParam中保存了 Ctrl 等不产生字元的系统键是否被按下
显示区域和非显示 区域
在windows程序设计中 窗体的 ClientArea 是 显示区域 而 标题栏 卷动列 或者 菜单栏工具栏 都是 非显示 区域 一般对于非显示区域的 消息 处理是有 DefWindowProc完成的 就好像 WM_SYSCHAR 一样 我们实际上并