Easyx简单使用

创建窗口大小为

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错误解决方法

  1. 在字符串前面加大写L  既L””
  2. 用TEXT()包起来字符串  既TEXT(””)或_T包起来
  3. 进项目->属性 配置属性->常规/高级->字符集选用多字符字符集

设置文字样式  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("你点击了取消");
    }
}

 

 

 

 

 

 

 

 

 

 

 

 


易错点

  1. 引用头文件#include
  2. 项目源文件类型后缀为.cpp

 

 

 

 

 

 

 

你可能感兴趣的:(学习)