创建窗口大小为
initgraph(640(长),480(宽)showconsole(显示控制台)):
关闭窗口closegraph();
绘图函数
例 画圆(radius半径)
circle()无填充
fillcircle()有边框填充
solidcircle()无边框填充
ellipse椭圆 pie扇形 polygon多边形
rectangle矩形(左上角和右下角的坐标) roundrect圆角矩形 line线
putpixel点
设置填充颜色 setfillcolor(颜色[英语单词]);
设置线条颜色 setlinecolor(颜色);
设置线条样式 setlinestyle(实虚线,线的宽度,);其他的右键定义可在easyx源文件看。
设置背景颜色 setbkcolor(颜色);后清屏cleardevice()
文字绘制函数
文字有背景会盖住后面的图
settextcolor(颜色)设置文字颜色
outtextxy(x,y,字符串)在指定位置输出字符串,字体默认白色
C2665错误解决方法
设置文字样式 settextstyle(大小,宽度(0为自适应),”字体”);
设置背景模式 setbkmode(transparent)//透明要用小写mode
设置文字颜色 settextcolor(RGB( , , ,));
下面两个函数是文本居中
textheight() 求文字的所占像素高度
textwidth() 求文字的所占像素宽度
图像处理函数
定义图象变量 IMAGE img;
loadimage(图像指针,“./图像名”,拉伸宽度默认0,拉伸高度默认0,是否调整图片大小)
//图片要保存在和源文件同目录
相对路径 ./当前文件加下 ../当前的上一级目录
绝对路径 有盘服 更详细(若用绝对路径则用斜杠变双斜杠)
putimage(x,y,地址指针,三元光栅操作码);
鼠标操作
while (true)
{
if (peekmessage(&msg, EX_MOUSE))
{
switch (msg.message)
{
case WM_LBUTTONDOWN:
if (msg.x >= 100 && msg.x <= 200 && msg.y >= 100. && msg.y <= 200)
{
printf("点击%d次",n);
n++;
}
default:
break;
}
}
}
非easyx函数--键盘消息输入
获取键盘消息有两个
getch() 头文件conio.h
//会有堵塞
GetAsyncKeyState(键值)
由于easyx包含wondows.h不需在引用了
//if (kbhit()) //判断又没有键盘输入
//{
// char key = getch();
// printf("%d\n", key);
// switch (key)
// {
// case 72://上键
// case 'W':
// case 'w':
// printf("上\n");
// y -= 5;
// break;
// case 80://下键
// case 'S':
// case 's':
// printf("下\n");
// y += 5;
// break;
// case 75://左键
// case 'A':
// case 'a':
// printf("左\n");
// x -= 5;
// break;
// case 77://右键
// case 'D':
// case 'd':
// printf("右\n");
// x += 5;
// break;
// }
// cleardevice();
//}
if (GetAsyncKeyState(VK_UP))
{
y -= 2;
cleardevice();
}
if (GetAsyncKeyState(VK_DOWN))
{
y += 2;
cleardevice();
}
if (GetAsyncKeyState(VK_LEFT))
{
x -= 2;
cleardevice();
}
if (GetAsyncKeyState(VK_RIGHT))
{
x += 2;
cleardevice();
}
不断绘图时会出现闪屏现象
BeginBatchDraw(); 开始批量绘图
EndBatchDraw(); 结束批量绘图
双缓冲绘图要放在绘图代码之前和之后
windowsAPI音乐播放
包含头文件在easyx.h下方mmsystem.h
使用函数mciSemdString();
加载静态库#pragma comment(lib,"winmm.lib")
//播放音乐
void BGM()
{
//找到音乐,播放音乐 alias取别名 重复播放用repeat
mciSendString("open . / alisa BGM1", 0, 0, 0);
mciSendString("play BGM1 repeat", 0, 0, 0);
if (0)
{
mciSendString("close BGM1 ", 0, 0, 0);
}
}
修改窗口标题,弹出对话框
GetHWn()获取窗口句柄,之后操作句柄
HWND hWnd GetHWnd();//获取句柄
修改窗口标题SetWindowsText(hWnd,"love");
设置模态对话框 MessageBox(hWnd,"对话框",MB_OKCANCEL);
void change()
{
//获取句柄
HWND hnd = GetHWnd();
//设置窗口标题
SetWindowText(hnd, "C语言欢迎你");
//弹出窗口
int isok = MessageBox(hnd, "是否进入", "提示", MB_OKCANCEL);
if (isok == IDOK)
{
printf("你点击了确认");
}
else if (isok == IDCANCEL)
{
printf("你点击了取消");
}
}
易错点