不知道如何键盘输入消息,(shift,alt之类的会了,就是不会ABCD)
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main()
{
initgraph(640, 480,SHOWCONSOLE);
int len=10 ;//图形缩放大小
ExMessage m;//消息变量
while (true)
{
m = getmessage(EM_MOUSE|EM_KEY);//获取鼠标或按键消息
switch (m.message)
{
case WM_LBUTTONDOWN:
if (m.shift)
{
fillrectangle(m.x, m.y, m.x + len, m.y + len);
printf("(%d,%d) len:%d %d\n", m.x, m.y,len, m.shift);
}
else
{
rectangle(m.x, m.y, m.x + len, m.y + len);
printf("(%d,%d) len:%d %d\n", m.x, m.y, len, m.shift);
}
break;
case WM_RBUTTONDOWN:
if (m.shift)
{
fillcircle(m.x, m.y, len - 5);
printf("(%d,%d) len:%d %d\n", m.x, m.y, len, m.shift);
}
else
{
circle(m.x, m.y, len - 5);
printf("(%d,%d) len:%d %d\n", m.x, m.y, len, m.shift);
}
break;
case WM_MBUTTONDOWN:
{
clearcircle(m.x, m.y, 10);
printf("(%d,%d) len:%d %d\n", m.x, m.y, len, m.shift);
}
break;
case WM_KEYDOWN://按键消息
if (m.vkcode== VK_CONTROL)
{
len += 5;
printf("len增长了!现在的值为:%d\n",len);
}
else if (m.vkcode==VK_MENU &&len>0)
{
len -= 5;
printf("len减短了!现在的值为:%d\n", len);
}
else if (m.vkcode==VK_ESCAPE)//退出
{
return 0;
}
default:
break;
}
}
_getch();
closegraph();
return 0;
}