事先准备 图形库的安装和帮助文档 (这里没有插件)
1.新建窗口
initgraph(640,480);//单位 像素
closegraph();//关闭窗口
2.画线 颜色(宏定义或者RGB自己调RGB(r,g,b))
line(100,200,200,400);
setlinecolor(WHITE);
//setlinestyle
3.画图形 颜色和填充色
rectangle(200,200,400,400);//矩形
fillrectangle(200,200,400,400);//填充矩形
solidrectangle(200,200,400,400);//无边框填充矩形
//三种类型的函数 1.线条无填充 2.只有填充 3.有线条有填充
setlinecolor(颜色);
setfillcolor(颜色);
4.贴图 路径 资源
loadimage(&img,"文件名",高度,宽度);
putimage(x,y,&img);
loadimage(NULL,"文件名",高度,宽度);//直接贴
loadimage(NULL,L"JPG",MAKEINTRESOURCE(图片ID),高度,宽度);//资源文件 文件名修改为类型加ID的形式
5.鼠标操作
MOUSEMSG msg;
if(MouseHit())//判断有无鼠标信息
msg=GetMouseMsg();//获取鼠标信息
switch(msg.uMsg)
case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN:
键盘消息
#include
char ch=getch()//获取键盘消息
if(kbhit())//判断有无鼠标信息
6.文字输入输出 文字颜色和样式
outtextxy(_T("hello"),x,y);
settextcolor(颜色);
settextstyle(高度,宽度(写0表默认),_T("字体"));
setbkmode(TRANSPARENT);//设置背景颜色透明
7.音乐播放
#include
#pragma comment(lib,"winmm.lib")
函数 PlaySound 只能wav格式 可以使用资源文件
PlaySound("c:\\win95\\media\\The Microsoft Sound.wav", NULL, SND_FILENAME | SND_ASYNC);
//文件名 SND_FILENAME 表示文件名 SNE_ASYNC表示异步播放(SND_SYNC 同步播放 放完音乐才开始下一步) SND_LOOP 表示循环播放
PlaySound((LPCTSTR)IDR_STARTWIN, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
//WAV ID 第二个参数是程序的实例句柄
PlaySound(NULL,NULL,NULL);停止播放
函数 mciSendSetring 可以放mp3 wav等 不能使用资源文件
mciSendSetring(L"open 文件名 alias mp3",NULL,NULL,NULL);
mciSendSetring(L"play mp3",NULL,NULL,NULL);//取别名之后直接播放就行
可选命令 pause stop
代码:
*/
代码:
- #include
// 引用图形库头文件 - #include
知识点 1:创建的初始化 - #include
-
-
- int main()
- {
- //知识点 1: 窗口创建和关闭
- initgraph(640, 480);
- //知识点 2:颜色
- setbkcolor(BLUE);
- //cleardevice(); //设置背景后需要画图才行,否则需要清空设备
- setlinecolor(WHITE);
- setorigin(10, 30); //设置初始位置
- setlinestyle(PS_DASH);
- setfillcolor(RED);
- circle(200, 200, 100);
- // 画圆,圆心(200, 200),半径 100
- //知识点 3:画图处理
- setlinecolor(RGB(0, 255, 255));
- setfillcolor(GREEN);
- circle(500, 200, 100);
- // 画圆,圆心(200, 200),半径 100
- arc(50, 50, 400, 120, 3, 3);
- fillrectangle(10, 10, 100, 100);
- //知识点 4:文字处理
- RECT r = { 0, 0, 639, 479 };
- drawtext(_T("Hello World"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
- setbkmode(TRANSPARENT);
- settextcolor(RGB(255,25,255));
- settextstyle(160, 30, _T("宋体"));
- outtextxy(120, 20, "你好");
- //知识点 5:图片处理
- IMAGE img;loadimage(&img, "./res/bk.jpg", 384, 384);
- //putimage(0, 0, &img);
- char s[20] = { 0 };
- InputBox(s, 10, "请输入半径","半径","10",20,50,false);
- int x = atoi(s);
- ExMessage m;
- while (true)
- {
- // 获取一条鼠标或按键消息
- m = getmessage(EM_MOUSE | EM_KEY);
- switch (m.message)
- {
- //case WM_MOUSEMOVE:
- // 鼠标移动的时候画红色的小点
- //
- MessageBox(NULL, "WM_MOUSEMOVE", "123", MB_OK);
- // break;
- case WM_LBUTTONDOWN:
- // 如果点左键的同时按下了 Ctrl 键
- MessageBox(NULL, "WM_LBUTTONDOWN", "123", MB_OK);
- break;
- case WM_KEYDOWN:
- if (m.vkcode == VK_F1)
- MessageBox(NULL, "VK_NUMPAD0", "123", MB_OK);
- break;
- }
- }
- _getch();
- // 按任意键继续
- closegraph();
- // 关闭绘图窗口
- return 0;
- }