事件类可以获取鼠标,键盘的操作。鼠标事件包括左键点击,右键点击,双击等;键盘事件包括ASCII码键,虚拟键,控制键。
示例代码:点击左键,输出5个a,点击右键,输出5个A,双击退出。按下Q键,ESC键或Alt+F4键退出。
// ConsoleApplication1.cpp : 此文件包含 “main” 函数。程序执行将在此处开始并结束。
#include “console.h”
#pragma comment(lib,“console.lib”)
extern COORD mouse; // 鼠标位置
void jiemian0(); // 界面0
int main()
{
Screen screen;
screen.ShowOrHideCursor(0);
screen.SetTitle(“示例2”);
Event event;
event.AddMouseMode(); // 添加鼠标模式
jiemian0();
event.RestoreMode();
screen.Close_handle();
return 0;
}
void jiemian0()
{
Screen screen;
screen.SetSize(80, 33);
Event event; // 定义一个事件对象
while (1)
{
event.ReadEvent(); // 读取事件
if (event.Mouse_Event()) // 鼠标事件
{
if (event.Left_Button_Pressed())
{
event.Get_mouse_position();
screen.Character_color_num = 2;
screen.DisplayCharacter(mouse, 'a', 5);
}
if (event.Right_Button_Pressed())
{
event.Get_mouse_position();
screen.Character_color_num = 3;
screen.DisplayCharacter(mouse, 'A', 5);
}
if (event.Double_Click())break;
}
if (event.Key_Event() && event.Key_Down()) // 键盘事件
{
char ch = event.Get_ch();
WORD vk = event.Get_vk(); // 虚拟键
DWORD ck = event.Get_ck(); // 控制键
if (ch == 'q' || vk == VK_ESCAPE)
{
break;
}
if ((ck & LEFT_ALT_PRESSED || ck & RIGHT_ALT_PRESSED) && vk == VK_F4) // Alt+F4键
{
break;
}
}
}
}
运行效果:
扫描二维码关注公众号,回复:
11476253 查看本文章
ReadEvent()是阻塞型的,若要非阻塞性的,可用PeekEvent()函数。
用法:
while(1)
{
if(event.PeekEvent())
{
event.ReadEvent();
…
}
Sleep(30);
}