『C/C++ 』easyX的基本使用方法,你学会了吗。
1、键盘事件
1-1、需要添加头文件#include<windows.h>,和#include<conio.h>(如果头文件已有图形库头文件graphics.h,则不再添加windows.h)
#include<graphics.h> #include<conio.h>
1-2、#include<conio.h>这里我们要用到_getch(),因此需要使用这个头文件,但_getch()是一个阻塞函数,如果没有输入值就会一直处于等待状态,影响整个程序进程。所以在此之前要判断是否有键盘事件发生(_kbhit())
if (_kbhit()) {
char key = _getch();
if (key == 13) {
printf("enter键被按下了");
}
}
1-3、除了上述之外还有一种获取键盘方向键的函数GetAsyncKeyState(),它有四个参数:(只能是方向键,对字母不起作用,可以斜方向运动)
-
VK_UP VK_DOWN VK_LEFT VK_RIGHT
2、播放音乐
2-1、播放音乐需要用到windows的一个API(windows.h)(如果已使用graphics.h),则无需使用;
2-2、还需要一个多媒体设备接口的头文件(mmsystem.h),先后顺序的影响,必须放在(windows.h)头文件下。
2-3、最后加载一下静态库(winmm.h)
#include<windows.h> #include<mmsystem.h> #pragma comment(lib,"winmm.lib")
2-4、使用格式
mcisendstring("open path alias 别名",0,0,0)//打开
mcisendstring("play 别名 repeat",0,0,0)//播放
mcisendstring("close 别名",0,0,0)//停止
3、鼠标事件
3-1、需要添加头文件**#include<windows.h>** 如果头文件已有**#include<graphics.h>**,则无需添加。
3-2、通过MouseHit()判断是否有鼠标按下,并使用一个对象名MOUSEMSG 创建变量获取鼠标产生的事件 GetMouseMsg()。
3-3、产生的事件下有一个uMsg,通过变量名.uMsg可进行判断按下的状态
-
msg.x是鼠标在窗体内的横坐标 msg.y是鼠标在窗体内的纵坐标 WM_LBUTTONDOWN代表鼠标左键按下 WM_RBUTTONDOWN代表鼠标右键按下
if(MouseHit()){
MOUSEMSG msg = GetMouseMsg();
switch(msg.uMsg){
case WM_LBUTTONDOWN:
if(msg.x>200&&msg.y>100){
printf("大家好,我是酱油老师~");
}
break;
case WM_RBUTTONDOWN:
break;
}
}
}
4、添加文本
4-1、图形界面是不能用printf()进行输出的
4-2、借助outtextxy可以实现;它有三个参数:“x,y,字符”
4-3、有问题的是无法输出中文,是因为字符集导致,有三个解决方案:
- 字符串前面加上大写的 L;
- 用TEXT()将字符串包裹起来;
- 菜单栏——项目——属性——配置属性——常规/高级——字符集改为多字节字符(推荐使用);
settextstyle(30,0,"华文楷体");
settextcolor(RGB(43,145,175));
outtextxy(0,0,L"大家好,我是酱油老师~");
outtextxy(0,0,TEXT("大家好,我是酱油老师~"));
5、模态对话框
5-1、使用模态对话框,需要获取窗口句柄。(为对话框限制一个作用范围)
-
SetWindowText()有两个参数:句柄,窗口的标题; MessageBox()有四个参数:句柄,对话框标题,对话框内容,显示按钮;
void dialog(){
HWND hWND = GetHWnd();
SetWindowText(hWND, "Sauce");
MessageBox(hWND,"温馨提示", "您需要点击确认才能执行之后的操作", MB_OKCANCEL);
}
