当前位置:文档之家› C语言鼠标操作

C语言鼠标操作

//处理鼠标事件

char input()
{
int Y,X,c=0;
for(;;)
{
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
INPUT_RECORD inRec;
DWORD res;
COORD pos = {0,0};
ReadConsoleInput(hInput, &inRec, 1, &res);
pos = inRec.Event.MouseEvent.dwMousePosition;
Y=(int)pos.Y;
X=(int)pos.X;
if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwEventFlags == RIGHTMOST_BUTTON_PRESSED) //鼠标左键双击
if(X>=65&&X<=69&&Y>=20&&Y<=23)
break;
}
}

inRec.Event.MouseEvent.dwEventFlags == RIGHTMOST_BUTTON_PRESSED) //鼠标左键双击
inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED//鼠标左键单击
inRec.Event.MouseEvent.dwButtonState == RIGHTMOST_BUTTON_PRESSED//鼠标右键单击
inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_2ND_BUTTON_PRESSED) //鼠标滚轮单击


void MouseEventProc(MOUSE_EVENT_RECORD mer)
{
DWORD state = mer.dwButtonState;
switch(mer.dwEventFlags)
{
case 0:
case MOUSE_MOVED:
mousePos = mer.dwMousePosition;
if(state & FROM_LEFT_1ST_BUTTON_PRESSED)
MOUSE_LEFT = true;
else MOUSE_LEFT = false;

if(state & RIGHTMOST_BUTTON_PRESSED)
MOUSE_RIGHT = true;
else MOUSE_RIGHT = false;

if(state & FROM_LEFT_2ND_BUTTON_PRESSED)
MOUSE_LEFT2 = true;
else MOUSE_LEFT2 = false;
if(state & FROM_LEFT_3RD_BUTTON_PRESSED)
MOUSE_LEFT3 = true;
else MOUSE_LEFT3 = false;

if(state & FROM_LEFT_4TH_BUTTON_PRESSED)
MOUSE_LEFT4 = true;
else MOUSE_LEFT4 = false;
break;
case DOUBLE_CLICK:
mousePos = mer.dwMousePosition;
//双击暂时没用
break;
case MOUSE_WHEELED:
//滚轮暂时没用
wheele.X = mer.dwMousePosition.X-mousePos.X;
wheele.Y = mer.dwMousePosition.Y-mousePos.Y;
//if(mer.dwButtonState & 0xFF000000)mousePos.X -= 6;//WheelDown();
//else mousePos.X -= 6;//WheelUp();
break;

相关主题
文本预览
相关文档 最新文档