首页 > 科技 > C语言——图形库

C语言——图形库

常用的图形库函数:

1.图形化环境:

可在"EssyX_Help.chm"帮助文档中"绘图环境相关函数"中查看.

#include // 头文件.

HWND initgraph(int width, int height, int flag = NULL); // 初始化图形环境,设置图形终端的大小.

参数 : width : 实参传递的是窗口的宽度,单位是像素.

height : 实参传递的是窗口的高度,单位是像素.

flag : 默认填NULL,根据需要会有修改.

返回值: 创建的绘图窗口的句柄,不做了解.

void closegraph(); // 关闭图形环境.

2.通过学习画圆的几个函数,初步认识图形库:

可在"EssyX_Help.chm"帮助文档中"图形绘制相关函数"中查看.

#include

void circle (int x, int y, int radius); // 画圆

void fillcircle (int x, int y, int radius); // 画填充圆(有边框)

void solidcircle (int x, int y, int radius); // 画填充圆(无边框)

参数: x : 传递的实参是圆心横坐标,单位像素.

y : 传递的实参是圆心纵坐标(往下),单位像素.

radius : 传递的实参是圆的半径,单位像素.

3.设置线条及填充部分颜色:

可在"EssyX_Help.chm"帮助文档中"图形颜色及样式设置相关函数"中查看.

#include

void setlinecolor(COLORREF color); // 设置当前线条颜色

void setfillcolor(COLORREF color); // 设置当前填充颜色

void settextcolor(COLORREF color); // 设置当前文字颜色

参数 : solor : 实参传递的是预定义颜色常量.常量值在"帮助文档"中"基本概念"的"颜色"中查找.

4.图像处理函数:

可在"EssyX_Help.chm"帮助文档中"图像处理相关函数"中查看.

1.从资源文件获取图像(bmp/gif/jpg/png/tif/emf/wmf/ico) : 需将图片加载进入资源文件中.

#include

void loadimage(IMAGE *pDstImg,LPCTSTR pResType,LPCTSTR pResName,int nWidth = 0,int nHeight = 0,bool bResize = false);

参数 : pDstImg : IMAGE对象指针变量.

使用方法: 定义一个IMAGE对象变量"IMAGE img;"然后对img取地址(&img)作为实参传递.

pResType : 资源类型(L"图片的大写后缀").

pResName : 资源名称.使用MAKEINTRESOURCE(IDB_PLAYER)进行传参.

nWidth : 图片拉伸宽度.

nHeight : 图片拉伸高度.

bResize : 是否调整IAMGE的大小以适应图片.false表示"否",true表示"是".

2.绘制图像:

#include

void putimage(int dstX, int dstY, const IMAGE *pSrcImg, DWORD dwRop = SRCCOPY); // 绘制图像到屏幕

参数: dstX : 实参传递的是图片绘制的起始横坐标.

sdtY : 实参传递的是图片绘制的起始纵坐标.

pSrcImg : 图形对象指针变量.实参传递的是一个图形对象的地址(&img).

dwRop : 一般使用默认值SRCCOPY.

5.文字相关函数:

1.在指定位置输出字符串

#include

void outtextxy(int x, int y, LPCTSTR str);

参数: x : 传递的实参是字符串输出的起始横坐标,单位像素.

y : 传递的实参是字符串输出的起始纵坐标,单位像素.

str : 要输出的字符串,用L"****"形式表示.

代码演示......

2.设置文字输出时的背景模式.

void setbkmode(int mode);

参数 : mode : OPAQUE : 背景用当前背景色填充.

TRANSPARENT : 背景是透明的.

3.设置字体颜色.

void settextcolor(COLORREF color);

参数 : color : 实参传递的是预定义颜色常量.常量值在"帮助文档"中"基本概念"的"颜色"中查找.

void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace);

4.设置字体样式:

void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace);

参数 : nHeight : 实参传递的是字体的高度.

nWidth : 实参传递的是字体的宽度.

lpszFace : 实参传递的是字体的名称,比如 L"楷体".

6.鼠标相关函数:

#include

MOUSEMSG GetMouseMsg(); //获取一个鼠标消息,如果当前鼠标消息队列中没有,就一直等待.

返回值 : 返回保存有鼠标消息的结构体变量.

结构体变量需要自定义: MOUSEMSG msg;

struct MOUSEMSG

{

UINT uMsg; // 当前鼠标消息

bool mkCtrl; // Ctrl 键是否按下

bool mkShift; // Shift 键是否按下

bool mkLButton; // 鼠标左键是否按下

bool mkMButton; // 鼠标中键是否按下

bool mkRButton; // 鼠标右键是否按下

int x; // 当前鼠标 x 坐标(物理坐标)

int y; // 当前鼠标 y 坐标(物理坐标)

int wheel; // 鼠标滚轮滚动值

};

uMsg:

WM_LBUTTONDOWN 左键按下消息

7.播放音乐:mp3格式

#include

#pragma comment(lib,"winmm.lib") //添加库

#define mciSendString mciSendStringW

WINAPI mciSendStringW( _In_ LPCWSTR lpstrCommand,

_Out_writes_opt_(uReturnLength) LPWSTR lpstrReturnString,

_In_ UINT uReturnLength,

_In_opt_ HWND hwndCallback

);

使用方法: mciSendString(L"命令 + mp3格式文件的路径",0,0,0);

常使用的两个命令: open, play(repeat).

看到这里相信很多学C的朋友对C的指针有了进一步了解,我自己便是一名学习了多年的C/C++的老程序员,今年我回顾以往的经历,花了一个多月的时间整理了一套最适合2019小白学习的资料,从基础语法到实战项目,现在准备送给每一位C/C++的小伙伴,如果想要获得的话可以关注我并且私信我:"学习",即可免费获取资料。欢迎各位来C/C++哦!

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/66476.html