前言
看看代码吧
ExMessage msg = { 0 };
bool button(int x, int y, int w, int h, const char* text)
{
//绘制按钮
setfillcolor(RGB(230, 231, 232));
fillroundrect(x, y, x + w, y + h, 5, 5);
if ((msg.x > x && msg.x<x + w && msg.y>y && msg.y < y + h))//给按钮变色
{
settextcolor(RED);
}
else
settextcolor(BLACK);
//绘制文本
int Hspace = (w - textwidth(text)) / 2;
int Vspace = (h - textheight(text)) / 2;
outtextxy(x + Hspace, y + Vspace, text);
//判断按钮是否被点击
if ((msg.x > x && msg.x<x + w && msg.y>y && msg.y < y + h) && msg.message == WM_LBUTTONDOWN)
{
return true;
}
return false;
}
int main()
{
initgraph(640, 480, EX_SHOWCONSOLE | EX_DBLCLKS);
setbkcolor(RGB(231, 114, 227));
cleardevice();
setbkmode(TRANSPARENT);
while (true)
{
peekmessage(&msg,EX_MOUSE | EX_KEY);
//判断按键消息 是按下还是弹起
if (msg.message == WM_KEYDOWN)
{
printf("keydown\n");
switch (msg.vkcode)
{
case VK_UP:
printf("上键按下\n");
break;
case VK_DOWN:
printf("下键按下\n");
break;
case VK_LEFT:
printf("左键按下\n");
break;
case VK_RIGHT:
printf("右键按下\n");
break;
case 'A'://字母按键必须大写
printf("按下A键\n");
break;
case VK_SPACE://具体其他按键还得去文档里看
printf("按下空格\n");
break;
}
}
else if (msg.message == WM_KEYUP)
printf("keyup\n");
msg.message = 0;
}
return 0;
}
看看结果吧
很有意思
总结
通过按键,打印出信息
按下上左下右空格等其他信息可以显示出