Win32学习笔记——鼠标操作
2006-10-14 19:27
387 查看
1.光标类型
1)系统光标类型(windows.h):
IDC_ARROW 箭头光标
IDC_CROSS 十字光标
IDC_IBEAM I字光标
IDC_ICON 空图标
IDC_SIZEALL 指向四个方向的带有箭头的光标
IDC_SIZENESW 带有指向东北方向和西南方向的箭头的光标
IDC_SIZENS 带有指向南方向和北方的箭头的光标
IDC_SIZENWSE 带有指向西北方向和东南方向的箭头的光标
IDC_SIZEWE 带有指向东方和西方的箭头的光标
IDC_UPARROW 带有指向上方箭头的光标
IDC_WAIT 漏斗行光标
2)自定义光标:
光标图案文件:*.cur
资源声明:光标名 CUSOR 光标文件(.cur)
2.载入光标
HCURSOR hCursor;
hCursor=LoadCursor(NULL,IDC_IBEAM);
SetCursor(hCursor);
3.激活/关闭窗口对光标响应
激活:SetCapture(hWnd);
关闭:ReleaseCapture();
注意:对光标响应时对键盘不响应,故要注意开与关
4.鼠标消息:
1)单击:
左键
按下:WM_LBUTTONDOWN(消息)与VK_LBUTTON、MK_LBUTTON(虚拟键值)有所不同
弹起:WM_LBUTTONUP
中键
按下:WM_MBUTTONDOWN与VK_MBUTTON、MK_MBUTTON有所不同
弹起:WM_MBUTTONUP
右键
按下:WM_RBUTTONDOWN与VK_RBUTTON、MK_RBUTTON有所不同
弹起:WM_RBUTTONUP
2)双击
左键
WM_LBUTTONDBLCLK
双击时间间隔的设置:
SetDoubleClickTime(UINT);
注意:双击只有当注册窗口类时,类型包括CS_DBLCLKS时才起作用,eg:WndClass.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;
3)移动
WM_MOUSEMOVE
5.消息参数:
WPARAM:虚拟键状态值
LPARAM:鼠标位置
横坐标:int x=LOWORD(lParam);
纵坐标:int y=HIWORD(lParam);
6.左键与CTRL或SHIFT的联合使用
左键与CTRL一起按下:wParam&MK_CONTROL非零
左键与SHIFT一起按下:wParam&MK_SHIFT非零
左键与CTRL且与SHIFT一起按下:wParam&MK_SHIFT非零且wParam&MK_SHIFT非零
注意:MK_CONTROL、MK_SHIFT而非VK_CONTROL、VK_SHIFT
1)系统光标类型(windows.h):
IDC_ARROW 箭头光标
IDC_CROSS 十字光标
IDC_IBEAM I字光标
IDC_ICON 空图标
IDC_SIZEALL 指向四个方向的带有箭头的光标
IDC_SIZENESW 带有指向东北方向和西南方向的箭头的光标
IDC_SIZENS 带有指向南方向和北方的箭头的光标
IDC_SIZENWSE 带有指向西北方向和东南方向的箭头的光标
IDC_SIZEWE 带有指向东方和西方的箭头的光标
IDC_UPARROW 带有指向上方箭头的光标
IDC_WAIT 漏斗行光标
2)自定义光标:
光标图案文件:*.cur
资源声明:光标名 CUSOR 光标文件(.cur)
2.载入光标
HCURSOR hCursor;
hCursor=LoadCursor(NULL,IDC_IBEAM);
SetCursor(hCursor);
3.激活/关闭窗口对光标响应
激活:SetCapture(hWnd);
关闭:ReleaseCapture();
注意:对光标响应时对键盘不响应,故要注意开与关
4.鼠标消息:
1)单击:
左键
按下:WM_LBUTTONDOWN(消息)与VK_LBUTTON、MK_LBUTTON(虚拟键值)有所不同
弹起:WM_LBUTTONUP
中键
按下:WM_MBUTTONDOWN与VK_MBUTTON、MK_MBUTTON有所不同
弹起:WM_MBUTTONUP
右键
按下:WM_RBUTTONDOWN与VK_RBUTTON、MK_RBUTTON有所不同
弹起:WM_RBUTTONUP
2)双击
左键
WM_LBUTTONDBLCLK
双击时间间隔的设置:
SetDoubleClickTime(UINT);
注意:双击只有当注册窗口类时,类型包括CS_DBLCLKS时才起作用,eg:WndClass.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;
3)移动
WM_MOUSEMOVE
5.消息参数:
WPARAM:虚拟键状态值
LPARAM:鼠标位置
横坐标:int x=LOWORD(lParam);
纵坐标:int y=HIWORD(lParam);
6.左键与CTRL或SHIFT的联合使用
左键与CTRL一起按下:wParam&MK_CONTROL非零
左键与SHIFT一起按下:wParam&MK_SHIFT非零
左键与CTRL且与SHIFT一起按下:wParam&MK_SHIFT非零且wParam&MK_SHIFT非零
注意:MK_CONTROL、MK_SHIFT而非VK_CONTROL、VK_SHIFT
相关文章推荐
- Python Selenium 学习笔记(三)键盘和鼠标操作
- Win32学习笔记 - 文件操作
- Opencv 学习笔记之——鼠标,进度条操作
- Open CV 学习笔记:鼠标操作(回调函数)
- Win32学习笔记——文字与文本操作
- 【Selenium学习笔记】webdriver对鼠标的操作
- Win32学习笔记——键盘操作
- opencv学习笔记——鼠标操作
- 20171012学习笔记Selenium 2 第四章WebDriver API 4.2控制浏览器 4.3简单元素操作4.4鼠标事件4.5键盘事件
- JavaScript语法学习笔记之 鼠标及按键操作
- Java学习笔记 Java调用Win32 API控制鼠标活动范围
- 【OpenCV学习笔记】八、鼠标与滑动条操作
- Win32学习笔记——鼠标消息
- Python Selenium 学习笔记(三)键盘和鼠标操作
- 工作学习笔记——C#自定义类型剪贴板操作、自定义鼠标光标定位问题
- C++学习笔记之对文件的操作
- OC学习笔记21--OC中集合类的读写文件操作及NSData与NSValue
- Silverlight学习笔记一:DataGrid如何处理鼠标的滚轮事件
- python学习笔记(一)-文件操作
- Spire.Pdf 的各种操作总结-------------学习笔记