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++哦!