我是靠谱客的博主 畅快世界,这篇文章主要介绍前置学习——EasyX部分函数了解,现在分享给大家,希望可以做个参考。

快速导航

    • 绘图设备
      • initgraph()
      • cleardevice()
    • 图形颜色及样式
      • setbkcolor()
      • setfillcolor()
      • setbkmode()
      • setlinecolor()
      • setlinestyle()
        • 样例
    • 图形绘制
      • circle()
      • fillcircle()
      • fillrectangle()
      • line()
    • 文字输出
      • outtextxy()
        • 样例
      • settextcolor()
      • settextstyle()
        • 样例
    • 鼠标相关
      • MOUSEMSG
      • GetMouseMsg()
      • MouseHit()
    • 其他
      • BeginBatchDraw()
      • FlushBatchDraw()
      • EndBatchDraw()

绘图设备

initgraph()

初始化绘图窗口

复制代码
1
2
3
4
5
6
HWND initgraph( int width; int height; int flag = NULL; );
flag含义
EW_DBLCLKS在绘图窗口中支持鼠标双击事件
EW_NOCLOSE禁用绘图窗口的关闭按钮
EW_NOMINIMIZE禁用绘图窗口的最小化按钮
EW_SHOWCONSOLE显示控制台窗口

cleardevice()

用当前背景色清空绘图设备,并将当前点移至(0, 0)

图形颜色及样式

setbkcolor()

用于设置当前设备绘图背景色。但是用该函数设置背景色后并不会改变现有背景色的,而是只改变背景色的值,之后再执行绘图语句比如outtextxy()才会使用新设置的背景色值。
如果要修改全部背景色,可以在设置背景色后执行cleardevice()

setfillcolor()

用于设置当前设备填充颜色

setbkmode()

用于设置当前设备图案填充和文字输出时的背景模式

复制代码
1
2
void setbkmode(int mode)
mode含义
OPAQUE背景用当前背景色填充(默认)
TRANSPARENT背景透明

setlinecolor()

用于设置当前设备画线颜色

setlinestyle()

复制代码
1
2
3
4
5
6
7
8
9
10
void setlinestyle( const LINESTYLE* pstyle //指向画线样式LINESTYLE的指针 ); void setlinestyle( int style, //画线样式 int thickness = 1, //线的宽度 const DWORD* puserstyle = NULL, //用户自定义样式数组 DWORD userstylecount = 0 //用户自定义样式数组的元素数量 );
style含义
PS_SOLID——
PS_DASH------
PS_DOT·······
PS_DASHDOT-·-·-·-·
PS_USERSTYLE用户自定义样式,参数由puserstyle和userstylecount指定

PS_ENDCAP_MASK能改变端点样式

含义
PS_ENDCAP_ROUND端点为圆形
PS_ENDCAP_SQUARE端点为方形
PS_ENDCAP_FALT端点平坦

PS_JOIN_MASK能改变连接处样式

含义
PS_JOIN_BEVEL连接处为斜面
PS_JOIN_MITER连接处斜接
PS_JOIN_ROUND连接处为圆弧

样例

复制代码
1
2
3
setlinestyle(PS_DASH | PS_ENDCAP_FLAT, 3) //宽度3的虚线且端点平坦 setlinestyle(PS_SOLID | PS_JOIN_BEVEL, 10); //宽度10的实线,连接处是斜面

图形绘制

circle()

使用当前画线样式绘制无填充的圆

复制代码
1
2
3
4
5
6
void circle( int x, //横坐标 int y, //纵坐标 int radius; //半径 );

fillcircle()

使用当前线形和当前填充样式绘制有边框的填充圆

复制代码
1
2
3
4
5
6
void fillcircle( int x, //横坐标 int y, //纵坐标 int radius; //半径 );

fillrectangle()

使用当前线形和当前填充样式绘制有边框的填充矩形

复制代码
1
2
3
4
5
6
7
void fillrectangle( int left, //矩形左部x坐标 int top, //矩形顶部y坐标 int right, //矩形右部x坐标 int bottom //矩形底部y坐标 )

line()

复制代码
1
2
3
4
5
6
7
void line( int x1, int y1. //直线起始点坐标 int x2, int y2 //直线终止点坐标 );

文字输出

outtextxy()

在指定位置输出字符串

复制代码
1
2
3
4
5
6
7
8
9
10
11
void outtextxy( int x, int y, //字符串输出时头字母的坐标 LPCTSTR str //待输出字符串的指针 ); void outtextxy( int x, int y, TCHAR c //待输出字符 );

样例

复制代码
1
2
3
4
5
6
7
8
9
TCHAR s[] = _T("HELLO WORLD"); outtextxy(10, 20, s); /* Windows为了消除各编译器的差别,重新定义了一些数据类型。 CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。 如果当前编译方式为ANSI(默认)方式,TCHAR等价于CHAR,如果为Unicode方式,TCHAR等价于WCHAR。 LPCSTR 相当于CONST CHAR * 和LPSTR 相当于CHAR *。 */

settextcolor()

设置当前字体颜色

settextstyle()

设置当前字体样式

复制代码
1
2
3
4
5
6
void settextsrtle( int nHeight, //高度 int nWidth, //字符平均宽度 LPCTSTR lpszFace //字体名称 );

样例

复制代码
1
2
3
settextstyle(16, 0, _T("宋体")); //设置当前字体为高16像素的宋体 outtextxy(0, 0, _T("测试")); //输出

鼠标相关

MOUSEMSG

保存鼠标消息的结构体

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
struct MOUSEMSG { UINT uMsg; bool mkCtrl; //Ctrl是否按下,后面以此类推 bool mkShift; bool mkLButton; //鼠标左键是否按下 bool mkMButton; bool mkRButton; int x; int y; //当前鼠标坐标 int wheel; //鼠标滚轮滚动值 };

GetMouseMsg()

用于获取一个鼠标信息。如果当前鼠标消息队列中没有,就一直等待

复制代码
1
2
MOUSEMSG GetMouseMsg(); //返回保存有鼠标消息的结构体

注:默认情况下连续的鼠标单击会被识别为两个单击事件。如果希望两个连续的鼠标单击识别为双击,需要在创建绘图窗口时指定标志位EW_DBLCLKS

MouseHit()

检测当前是否有鼠标消息

复制代码
1
2
bool MouseHit()

其他

BeginBatchDraw()

详细了解
用于开始批量绘图。执行后任何绘图操作都将暂时不输出到绘图窗口上直到执行FlushBatchDraw()或EndBatchDraw()才将之前的绘图输出。

FlushBatchDraw()

用于执行未完成的绘制任务

EndBatchDraw()

用于结束批量绘制,并执行未完成的绘制任务

最后

以上就是畅快世界最近收集整理的关于前置学习——EasyX部分函数了解的全部内容,更多相关前置学习——EasyX部分函数了解内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部