我正在开发一个将旧的Windows 95 MFC代码转换为C ++ 11的项目。我想知道,如果在移动过程中没有点击鼠标按钮,那么传递给OnMouseMove()函数的UINT nFlags的值是多少?
我对MFC不太熟悉,而且我无法访问Windows机器自行进行任何测试,因此我对此功能行为的理解可能不正确。我知道如果左键单击,中间或右侧有一些特殊的系统值,OnMouseMove函数将在nFlags中接收(如MK_LBUTTON,即0x0001)。我想知道nFlags的价值是什么,如果没有特别点击并且鼠标移动了,它只是0x0000吗?非常感谢,非常感谢您对此事的任何帮助!
答案 0 :(得分:3)
是的,它是0。
但我认为测试记录的可能值是最安全的,因此如果将来更改其用法,“0假设”代码不会中断。根据VSDN的MSDN,这些是可能的值:
MK_CONTROL Set if the CTRL key is down.
MK_LBUTTON Set if the left mouse button is down.
MK_MBUTTON Set if the middle mouse button is down.
MK_RBUTTON Set if the right mouse button is down.
MK_SHIFT Set if the SHIFT key is down.
当前它们(在Winuser.h中)定义为:
#define MK_LBUTTON 0x0001
#define MK_RBUTTON 0x0002
#define MK_SHIFT 0x0004
#define MK_CONTROL 0x0008
#define MK_MBUTTON 0x0010