小弟在搞一个触摸屏驱动程序,其中模拟鼠标部分用到鼠标驱动程序中MOUSE_INPUT_DATA结构体如下:
typedef struct _MOUSE_INPUT_DATA {
USHORT UnitId;
USHORT Flags;
union {
ULONG Buttons;
struct {
USHORT ButtonFlags;
USHORT ButtonData;
};
};
ULONG RawButtons;
LONG LastX;
LONG LastY;
ULONG ExtraInformation;
} MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
Flags标志是标示鼠标的坐标属性(即相对坐标、绝对坐标等)
ButtonFlags标志是左右中键按下和松开的标志
LastX是鼠标X坐标,与Flags标志有关
LastY是鼠标Y坐标,与Flags标志有关
问题如下:
当Flags标志是绝对坐标时,只要将此时的触摸笔触点的X,Y值给LastX和LastY就可以了,驱动可以正常显示触摸笔触点位置;但是当Flags标志选择相对坐标时,该给LastX和LastY送什么值呢?是否是触点此时的X,Y坐标与上一点坐标的差值(根据相对坐标定义理解)?我现在是送的差值,可是显示的触点位置很不稳定,乱跳。了解的前辈指点一下,多谢!
|