文档名称:
第9章鼠标程序编程基础.ppt
格式:ppt 大小:769KB 页数:15页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表
如果您已付费下载过本站文档,您可以点这里二次下载
文档介绍:第9章鼠标程序编程基础
现在学习的是第1页,共15页
9.1鼠标概述
鼠标作为一种定位输入设备,在Windows中得到了广泛的应用。通过鼠标的键击、双击和拖动功能,用户可以很容易地操作基于Windows图形界面的应用程序。
常见鼠标有单键、双键、三键等几种类型,以重视与网络浏览的五健鼠标在Windows 2000系统中也得到支持。
nButtons = GetSystemMetrics(SM_CMOUSEBUTTONS); //可以反回当前鼠标上键的个数
SwapMouseButton(TRUE); // 用于交互鼠标左键和右键的功能
SystemParametersInfo(SPI_SETMOUSESPEED,0,20,0); // 可以获取和设置鼠标的速度
uTime=GetDoubleClickTime(); // 获取鼠标的双击间隔
SetDoubleClickTime(300); // 设置鼠标的双击间隔
现在学习的是第2页,共15页
9.1.3鼠标消息
当鼠标事件发生后,系统将产生的鼠标消息发送到相应的应用程序的消息队列。一般来讲,鼠标消息只会发送给热点下面的程序窗口,而不管该窗口是否是活动的。
鼠标消息有两类:
客户区鼠标消息
非客户区鼠标消息
与鼠标有关的操作
鼠标键双击
捕获鼠标
鼠标响应程序实例 MouseClick.c
现在学习的是第3页,共15页
9.1.4 显示区鼠标消息
Windows 2000系统中,共定义了13种客户区鼠标消息:
鼠标键
按下
释放
双击
左键
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
中键
WM_MBUTTONDOWN
WM_MBUTTONUP
WM_MBUTTONDBLCLK
右键
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_RBUTTONDBLCLK
X键
WM_XBUTTONDOWN
WM_XBUTTONUP
WM_XBUTTONDBLCLK
鼠标移动
WM_MOUSEMOVE
x=LOWORD(lParam); // 鼠标发生时的x坐标位置
y=HIWORD(lParam); // 鼠标发生时的y坐标位置
现在学习的是第4页,共15页
9.1.4 显示区鼠标消息
鼠标消息的wParam中则存放着鼠标虚拟键的组合:
MK_LBUTTON
MK_MBUTTON
MK_RBUTTON
MK_SHIFT
MK_CONTROL
例如:判别当某鼠标按下同时SHIFT组合键是否也同时按下了?
if ( (wParam & MK_SHIFT) != 0 )
cout<<“Shift键也同时按下了”;
if ( (wParam&MK_LBUTTON)!=0 && (wParam&MK_CONTROL)!=0 )
cout<<“鼠标左键和Ctrl键同时按下了”
现在学习的是第5页,共15页
9.1.6 鼠标消息的处理例子
CONNECT
现在学习的是第6页,共15页
9.3 非显示区域鼠标消息
对应于每条客户区,鼠标消息都有一条非客户区鼠标消息,只不过消息的名称稍有不同
如WM_LBUTTONDOWN对应于WM_NCLBUTTONDOWN。 另外, 包含在非客户区鼠标消息lParam参数中的坐标信息是基于屏幕坐标系的,即坐标原点在窗口屏幕的左上角。
现在学习的是第7页,共15页
9.4 显示区域中的名种测试程序
9.4.1 命中测试程序
CHECKER1
9.4.3 在CHECKER1种加入键盘界面后的程序
CHECKER2
现在学习的是第8页,共15页
9.5 子窗口的基本概念
9.5.1 用子窗口实现CHECKER程序
CHECKER3
表9-5 CreateWindow 的11个参数
参数
主窗口
子窗口
窗口类
“Checker3”
“Checker3_Child”
窗口标题
“Check3...”
NULL
窗口式样
WS_OVERLAPPEDWINDOW
WS_CHILDWINDOW|WS_VISIBLE
水平地址
CW_USEDEFAULT
0
垂直地址
CW_USEDEFAULT
0
宽度
CW_USEDEFAULT
0
高度
CW_USEDEFAULT
0
父窗口代码
NULL
Hwnd
功能表代号
N