一、颜色
1、EasyX颜色:rgb(红,绿,蓝)
三基色:红、绿、蓝 范围0~255
二、EasyX 坐标和设备
1、坐标:(注意看坐标的原点位置)
2、设备
设备分两种:a.默认的绘图窗口 b.image对象
通过SetWorkingImage()函数可设置当前用于绘图工具,设置后,所有绘图函数都在该设备上
三、窗口函数用于窗口的一些操作
initgraph( int width, int height, int flag = null); //用于初始化绘图窗口,创建窗口
closegraph(); //用于关闭绘制窗口
cleardevice(); //清空绘图设备
#include <stdio.h>
int main(){
initgraph(640*480); //确定窗口大小
getchar(); // 若没有,则会闪退
closegraph();
return 0;
}
四、绘制函数
1、绘图函数,填充样式分为三种:无填充、有边框填充、无边框填充。
以画图为例划分:① circle(); //无填充
②fillcircle(); //有边框填充
③solidcircle(); //无边框填充
以形状划分:①circle( int x, int y,int radius) ;
椭圆ellipse;扇形pie;多边形polygon;矩形rectangle;圆角矩形roundrect;线line;画点putpixel
//--------------
int main(){
initgraph(640,480);
setlinestyle (ps_solid,5)
setfillcolor(YELLOW);
setlinecolor(BLUE);
circle(50,50,50);
fillcircle(50,150,50);
solidcircle(50,250,50);
getchar();
closegraph();
return 0;
}
-------------------- setbkcolor(颜色) ; //设置背景: stept1*
cleardevice(); //清屏: stept2*
--------------------setfillcolor(颜色); //设置填充颜色
--------------------setlinecolor(颜色); //设置线条颜色
--------------------setlinestyle(样式,像素); //设置线条样式
五、文字绘制函数,用在窗口上绘制文字
①在指定位置上输出字符串: outtextxy( int x, int y, L"字符串内容");
②设置当前文字颜色: settextcolor (COLOR 颜色);
③设置字体样式:settextstyle( int nheight, int nweight, LPCTSTR IpszFace) // 高度,宽度,字名
initgraph(640,480,show console) //1.show console 创建窗口时,保留控制台显示
//2.noclose 没有关闭功能
//3.nominimize 没有最小化
int maye=0;
scanf("%d, &maye);
//绘制文字
settextcolor(red); //默认为白色
outtextxy (20,20,'a'); (x坐标。y坐标,绘制文字内容)
outtextxy (20,20, L'我是帅哥'); // 在字符串前加大写的“L”
// 用text()把字符串内容包裹起来
// 项目-属性-配置属性-常规-字符集-改为多字节字符
//设置文字样式
settextstyle(50,0,“楷体”);
//设置背景模式
setbkmod(TRANSPARENT); //透明背景
outtextxy(50,50,L“我是帅哥”);
④textheight(LPCTSTR str); //获字符串实际占用像素高度
textwidth(LPCTSTR str); //获字符串实际占用像素宽度
//以上可用于文本的垂直和水平居中显示,就是需要手动计算,麻烦
//把文字居中
fillrectangle( 左上坐标x,左上坐标y,右下坐标x,右下坐标y)
settextcolor(reg(173,0,3)); //需重新定制字颜色
char[]="我是居中显示的mage";
int width =300/2-textwidth (arr)/2 ;
int width =50/2-textheight (arr)/2 ;
outtextxy (width+200 , height+50 , arr); //动态居中
六、图像处理函数
※图像处理函数用在窗口上显示图片
Step 1:在使用图像前,需要定义一个变量(对象),然后吧图片加载进变量才能进行使用;
①平时定义变量都是使用的基础数据类型: int temp;
②在使用图像的时候需要使用EasyX提供类型:image;
Step 2:
loadimage(IMAGE *pDstimg ,LPCTSTR plmgFile, int nWidth=0, int nHeight=0,
bool bResize=false);
*pDstimg:保存图像的IMAGE对象指针&img
plmgFile:图片文件名
nWidth:拉伸宽度
nHeight:拉伸高度
bResize=false:是否调整IMAGE的大小以适应图片
Step 3:
putimage (int dstX, int dstY, IMAGE *pSrclmg, DWORD dwRop=SRCCOPY); //在当前设备上绘制指定图像
dstX:绘制位置x坐标
dstY:绘制位置y坐标
*pSrclmg:要绘制的IMAGE对象指针&img
dwRop=SRCCOPY :三元光栅操作码
//输出图片
IMAGE image; //定义一个对象(变量)
//加载图片
loadimage(&img,“./”,250,250); //格式:loadimage(&img,“./”,大小,调整)
'./’表示当前文件夹下
‘../’表示当前文件夹上一级目录
相对路径:./00.jpg
绝对路径:D:\UserData\Pictures\00.jpg
putimage(0,0,&img);
七、鼠标消息函数
1、鼠标消息要使用MOUSEMSG类型,例:MOUSEMSG msg;
2、然后MoustHit() 判断是否有鼠标消息 (左键or右键or中间or移动)
3、如果有鼠标消息就可进行接收鼠标消息 msg=GetMouseMsg();
4、鼠标、消息主要成员:
uMsg:当前鼠标消息;
x:当前鼠标x坐标
y: 当前鼠标y坐标
while(1)
{
if(MouseHit())
{
MOUSE msg =GetMouseMsg();
//消息发送
switch(msg,uMsg)
{
case WM_LBUTTONDOWN;
outtextxy(400,400,"左键按下")
printf("坐标(%d,%d)\n", msg.x,msg.y);
break;
case WM_RBUTTONDOWN;
outtextxy(400,400,"右键按下")
printf("坐标(%d,%d)\n", msg.x,msg.y);
break;
}
}
}
八、非EasyX函数——键盘消息函数
两种键盘操作方式
1、用于获取鼠标消息的函数有两个
①getch(); //需要头文件conio.h
②GetAsyncKeyState(键值); //需要头文件windows.h
2、方法One:
getch();需要使用返回值来判断
①与非ASCII表字符的按键比较,需虚拟键值(上72,下80,左75,右77)
②如果是与字母比较就直接写字母 比如:‘A’;
3、方法Two: ※推荐 可走斜
GetAsyncKeyState(键值);
需要传入一个键值, 如:按下返回真: (上 VK_UP;下 VK_DOWN; 左 VK_LEFT;右 VK_RIGHT;)
九、EasyX图形库 ——其他函数
1、在设备上不断进行绘图操作时,会产生闪屏现象,通常有两个函数去解决。
/* --双缓冲绘图,需要放在代码之前和之后-- */
Step 1:BeginBatchDraw(); //开始批量绘图
Step 2:-------------中间绘图代码 ----------------- 或FlushBatchDraw();
Step 3:EndBatchDraw(); //结束批量绘图
2、GetHWnd(); //获取窗口句柄,获取后用来操作窗口
①HWND hWnd = GetHWnd() ; //获取窗口句柄
②SetWlndowText(hWnd,“love”); //修改窗口标题
③MessageBox( hWnd,' 我是消息框' “我是标题”,MB_OKCANCEL); //设置模态对话框
ps: hWnd是变量, MB_OKCANCEL确认,关闭的按钮
例子:
void change(){
HWND hnd =GetHWnd();
SetWindowText(hnd ,"C语言plus");
//弹出窗口用户提醒操作
int isOK=MessangBox( null,"恭喜你成功中奖200W","标题",MB_OKCANCEL);
//null:没有窗口句柄
//hnd:有窗口句柄,需取消才能干别的,通俗理解就是这个窗口
被置顶着需要点击取消才能点击别的窗口
if(isok== IDOK)
printf("点击了OK\n");
else if(IDCANCEL==isok)
printf("你点击了取消\n")
}
十、Windows API 播放音乐
1、为了实现用C语言播放音乐,需要用到windows 的一个API
①头文件windows.h (若已包含则无需geaphics.h)
②然后需加载静态库 winmm.lib
③最后就可以使用 mciSendString函数来播放音乐
MCIERROR mmciSendStringA(
LPCSTR IpstrCommand, //命令字符串,命令设备[参数]
LPSTR IpstrReturnString, //接收返回信息缓冲区,为null时不返回信息
UINT uReturnLength, // 上述缓冲区大小
HWND hwndCallback, //一般为null
);
使用方法:
Step1: mciSendString("open ./ 路径.mp3" null,null,null); 打开音乐
Step2:mciSendString("play ./ 路径.mp3 "null,null,null); 播放音乐
mciSendString("close./ 路径.mp3 "null,null,null); 关闭音乐