概述
快速导航
- 绘图设备
- initgraph()
- cleardevice()
- 图形颜色及样式
- setbkcolor()
- setfillcolor()
- setbkmode()
- setlinecolor()
- setlinestyle()
- 样例
- 图形绘制
- circle()
- fillcircle()
- fillrectangle()
- line()
- 文字输出
- outtextxy()
- 样例
- settextcolor()
- settextstyle()
- 样例
- 鼠标相关
- MOUSEMSG
- GetMouseMsg()
- MouseHit()
- 其他
- BeginBatchDraw()
- FlushBatchDraw()
- EndBatchDraw()
绘图设备
initgraph()
初始化绘图窗口
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()
用于设置当前设备图案填充和文字输出时的背景模式
void setbkmode(int mode)
mode | 含义 |
---|---|
OPAQUE | 背景用当前背景色填充(默认) |
TRANSPARENT | 背景透明 |
setlinecolor()
用于设置当前设备画线颜色
setlinestyle()
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 | 连接处为圆弧 |
样例
setlinestyle(PS_DASH | PS_ENDCAP_FLAT, 3) //宽度3的虚线且端点平坦
setlinestyle(PS_SOLID | PS_JOIN_BEVEL, 10); //宽度10的实线,连接处是斜面
图形绘制
circle()
使用当前画线样式绘制无填充的圆
void circle(
int x, //横坐标
int y, //纵坐标
int radius; //半径
);
fillcircle()
使用当前线形和当前填充样式绘制有边框的填充圆
void fillcircle(
int x, //横坐标
int y, //纵坐标
int radius; //半径
);
fillrectangle()
使用当前线形和当前填充样式绘制有边框的填充矩形
void fillrectangle(
int left, //矩形左部x坐标
int top, //矩形顶部y坐标
int right, //矩形右部x坐标
int bottom //矩形底部y坐标
)
line()
void line(
int x1,
int y1. //直线起始点坐标
int x2,
int y2 //直线终止点坐标
);
文字输出
outtextxy()
在指定位置输出字符串
void outtextxy(
int x,
int y, //字符串输出时头字母的坐标
LPCTSTR str //待输出字符串的指针
);
void outtextxy(
int x,
int y,
TCHAR c //待输出字符
);
样例
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()
设置当前字体样式
void settextsrtle(
int nHeight, //高度
int nWidth, //字符平均宽度
LPCTSTR lpszFace //字体名称
);
样例
settextstyle(16, 0, _T("宋体")); //设置当前字体为高16像素的宋体
outtextxy(0, 0, _T("测试")); //输出
鼠标相关
MOUSEMSG
保存鼠标消息的结构体
struct MOUSEMSG
{
UINT uMsg;
bool mkCtrl; //Ctrl是否按下,后面以此类推
bool mkShift;
bool mkLButton; //鼠标左键是否按下
bool mkMButton;
bool mkRButton;
int x;
int y; //当前鼠标坐标
int wheel; //鼠标滚轮滚动值
};
GetMouseMsg()
用于获取一个鼠标信息。如果当前鼠标消息队列中没有,就一直等待
MOUSEMSG GetMouseMsg(); //返回保存有鼠标消息的结构体
注:默认情况下连续的鼠标单击会被识别为两个单击事件。如果希望两个连续的鼠标单击识别为双击,需要在创建绘图窗口时指定标志位EW_DBLCLKS
MouseHit()
检测当前是否有鼠标消息
bool MouseHit();
其他
BeginBatchDraw()
详细了解
用于开始批量绘图。执行后任何绘图操作都将暂时不输出到绘图窗口上直到执行FlushBatchDraw()或EndBatchDraw()才将之前的绘图输出。
FlushBatchDraw()
用于执行未完成的绘制任务
EndBatchDraw()
用于结束批量绘制,并执行未完成的绘制任务
最后
以上就是畅快世界为你收集整理的前置学习——EasyX部分函数了解的全部内容,希望文章能够帮你解决前置学习——EasyX部分函数了解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复