第七章 鼠标

    1、对于客户区的鼠标消息,其lParam值均含有鼠标的位置:低位字为x坐标,高位字为y坐标,这两个坐标是相对于窗口客户区左上角的位置。可以用LOWORD和HIWORD来提取这些值:

wParam的值指示鼠标键及Shift键和Ctrl键的状态。

    2、窗口过程可以“捕获鼠标”并且连续地接收鼠标消息,即使此时鼠标在该窗口客户区之外。

    3、如果正在显示一个模态系统消息框或者模态系统对话框,那么其他程序就不能接收鼠标消息。当模态系统消息或者对话框处于活动态时,禁止切换到其他窗口或者程序。当关闭Windows会话时,将会显示一个模态系统消息框的例子。

    4、GetKeyState的使用:GetKeyState返回当前正在处理的鼠标键或者shift键的状态,所以全部状态信息都与相应的消息是同步的。但是,正如不能把GetKeyState用于尚未按下的键一样,也不能为尚未按下的键调用GetKeyState。不要这样做:

只有在调用GetKeyState期间处理消息是,如果左键已经按下,才会报告键已按下的消息。

    5、非客户区鼠标消息的wParam和lParam参数与客户区鼠标消息的wParam和lParam参数有一定差别。wParam指明移动或者单击鼠标键的非客户区位置。lParam包含低位字x坐标和高位字y坐标,但是,它们都是屏幕坐标,而非客户区坐标。屏幕坐标和客户区坐标转换的函数:

    6、WM_NCHITTEST,非客户区命中测试消息,它优先于所有其他的客户区和非客户区鼠标消息。通过下列语句可以有效地禁止窗口中的而所有客户区和非客户区鼠标消息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值