C++学习day--04 图形化开发环境搭建

1、为什么要搭建图形化开发环境

因为很多初学者学习C++就是单纯的控制台打印输出,很枯燥,我们今后在做项目或者在学习的过程中,采用图形化方式相结合的方法学习,在学习中体会编程带来的快乐。先说明一下,奇牛课程是边学习边做项目的课,我们学习一些知识点就可以做部分项目。在做项目过程中,我们会熟悉使用easyx图形库的使用。

图形开发环境
1. 使用 MFC WPF ,使用方便, 但是需要先熟悉 C++, 仅适用于 Windows 平台 .后面就业班专门学习MFC开发。
2. 使用跨平台 QT ,跨平台, 也要先熟悉 C++.就业课专门学习QT开发。
3. 使用图形库 OpenGL OpenGL 非常强大 , 很多大型游戏引擎就直接使用 OpenGL 绘制图像
缺点 : 太复杂 , 不适合初学者 .
4. EasyX,使用简单, 非常适合 C/C++初学者构建图形界面. 同时用来学习/提高 C/C++语言

为什么选择 EasyX?

1. 作为学习、提高 C++ 的重要工具,在实际工作中再根据需要选择其他工具。
2. 开发简单的图形界面应用程序
搭建 EasyX 图形开发环境
1. 先安装 Visual C++2010 VS 的其他版本
在前面的课程中已经安装。
2. QQ 群下载 EasyX 的安装包,或者去官网: EasyX Graphics Library for C++

 点击安装:

C++学习day--04 图形化开发环境搭建_第1张图片

然后:

C++学习day--04 图形化开发环境搭建_第2张图片

 单击 visual c++ 2010 对应的“安装”按钮(或单击其他版本对应的按钮),自己安装VS的哪个版本就安装对应的easyx版本

3. 开发第一个图形界面程序
在原项目所在的解决方案中,创建一个新项目(也可以重新创建一个新的解决方案)
右击解决方案,选择“添加” > “新建项目” :
C++学习day--04 图形化开发环境搭建_第3张图片

VS 中,一个解决方案可包含多个项目。 

在新项目 G1 中创建一个新文件 mainGraphic.cpp,代码如下:
#include
// 引用 EasyX 图形库
#include
int main( void )
{
initgraph(640, 480);
// 初始化图形界面 , 画布大小为 640x480
// 画一个圆
circle(320, 240, 200); // 画圆,圆心 (320, 240) ,半径为 200
system( "pause" );
closegraph();
// 关闭图形界面
}

 把新项目 G1 设置为找个解决方案的“启动项目”,注意:一个解决方案里可以有多个项目,而每次只能运行一个项目,我们运行某个指定的项目就得把该项目设置为启动项目。

C++学习day--04 图形化开发环境搭建_第4张图片

 把新项目 G1 设置为找个解决方案的“启动项目”并运行

运行 :

C++学习day--04 图形化开发环境搭建_第5张图片

有的人问,这好像还是控制台打印啊??不不不,这不是控制台,你看左上角有个G1,说明已经不是控制台了,具体是什么?不着急,先慢慢来。稳中求进!!后面都会说的。

2、图形开发进阶

可参考 easyx 图形库的文档手册 , 学习各个接口的用法 .
效果图:
C++学习day--04 图形化开发环境搭建_第6张图片

分析 :

C++学习day--04 图形化开发环境搭建_第7张图片

 背景色:用“画图”的拾色器获取。代码如下:

#include
// 引用 EasyX 图形库
#include
int main( void )
{
initgraph(640, 480);
// 初始化图形界面 , 画布大小为 640x480
setbkcolor(RGB (64, 128, 128)); // 设置背景色
cleardevice(); // 用背景色清空整个屏幕 ( 整个画布 )
// 画一个圆
setlinecolor(RGB (255, 0, 0));
// 设置划线 ( 画笔 ) 的颜色
setlinestyle( PS_SOLID, 10);
// 设置线条为实线 , 设置线宽为 10 像素
circle(320, 240, 200);
// 画圆,圆心 (320, 240) ,半径为 200
// 输出文本

settextcolor(RGB(255,255,0));
// 设置字体颜色
// 设置字体样式 : 字体高度为 100 像素 , 宽度不指定 , 字体名称为 " 微软雅黑 "
settextstyle(100, 0, " 微软雅黑 " );
outtextxy(170, 190, ( " 无码高清 " )); // 在指定位置输出文本
// 画一条斜线
line(180, 380, 460, 100); // (180,380) (460, 100) 画一条直线
system( "pause" );
closegraph();
// 关闭图形界面
}

运行结果:

C++学习day--04 图形化开发环境搭建_第8张图片

 后面我回打印图片,那个时候就很有趣了。easyx的用法大家业余时间可以找找教程学学看。

 3、 黑客攻击系统-图形界面实现

 效果图:

C++学习day--04 图形化开发环境搭建_第9张图片

分析:

 C++学习day--04 图形化开发环境搭建_第10张图片

 图片:600 x 340

实现:

1. 把图片资源(bg.jpg)复制到该项目的目录下,大家也可以用自己的图片:

C++学习day--04 图形化开发环境搭建_第11张图片

2. 代码实现: 

mainGraphic.cpp
#include
// 引用 EasyX 图形库
#include
int main( void )
{
initgraph(600, 400);
// 初始化图形界面 , 画布大小为 640x480
loadimage(0, ( "bg.jpg" ));
settextcolor(RGB(255,255,0));
// 设置字体颜色
settextstyle(30, 0, " 微软雅黑 " );
rectangle(300, 40, 550, 80);
//( 左上角 x, 左上角 y, 右上角 x ,右上角
outtextxy(310, 45, "1- 网站 404 攻击 " ); // 在指定位置输出文本
rectangle(300, 100, 550, 140);
outtextxy(310, 105, "2- 网站篡改攻击 " ); // 在指定位置输出文本
rectangle(300, 160, 550, 200);
outtextxy(310, 165, "3- 网站攻击修复 " ); // 在指定位置输出文本
rectangle(300, 220, 550, 260);
outtextxy(310, 225, "4- 查看攻击记录 " ); // 在指定位置输出文本
rectangle(300, 280, 550, 320);
outtextxy(310, 285, "5- 退出 " ); // 在指定位置输出文本
system( "pause" );
closegraph();
// 关闭图形界面
}
思考:
各功能菜单,可以进一步完善:
鼠标移动到该菜单项时,整个菜单项就变色,
但鼠标在这个菜单上点击时,菜单项再次变色,并播放一个短暂的音效。
小练习:
效果图:
C++学习day--04 图形化开发环境搭建_第12张图片

由于我没有这张图,就换一张那个图:如下:

C++学习day--04 图形化开发环境搭建_第13张图片

音乐使用滑脚怪,如文件夹底部所示:

C++学习day--04 图形化开发环境搭建_第14张图片

代码:

#include
#include
#include
#pragma comment(lib,"winmm.lib")

int main() {
    initgraph(800, 513);
    loadimage(NULL, _T("jile.jpg"));
    //音乐播放
    mciSendString(_T("play 滑脚怪.mp3"), 0, 0, 0);
    system("pause");
}

播放音乐的代码就是这么简单,只是头文件比较多。

问题补充:为什么我跟着你敲,没有播放音乐?原因就是编码方式:

C++学习day--04 图形化开发环境搭建_第15张图片

 这种编码方式是不能播放音乐的,改成支持中文的即可播放:

C++学习day--04 图形化开发环境搭建_第16张图片

怎么修改编码?参考:

VS2019 设置显示”高级保存选项“_vs高级保存选项_张明奇-琦玉的博客-CSDN博客

3、职场修炼 

工作遇到困难怎么办 , 问还是不问 ?
问题: 做任何有难度的项目,必定会遇到困难,甚至瓶颈。
顾虑:
1. 问同事,会不会显得自己的水平不行,有损个人的逼格形象。
2. 问领导(项目经理、主管等),会不会影响自己在公司的技术地位
3. 憋着不问,可能搞不定,会不会影响项目进度。
案例:南京研究所,某卫星通信项目的芯片移植,进度严重受阻,被迫更换芯片。
职场陷阱: 遇到困难,诉苦,说“我不会”。 试用期,如果常常说“我不会”,将严重影响考评,甚至会被辞退。
案例:某名校(华南理工)毕业生试用期被辞退。
解决方案:
1. 提出具体的问题,越具体越好。
案例:某嵌入式设备的 WEB 服务器不会做。
就问:在 xxx 设备, xxx 操作系统,提供 xxx 功能的 WEB 服务器,怎么做?
2. 同时提出几个备选方案,更好。

4、程序员必备工具:Beyond Compare 3(代码对比工具)

排错的最后武器 - 代码对比工具 ,明明文档或代码是一样的,为什么还是出错?
使用场合:
1. 学习时,和参考代码做比较
2. 开发时,在多个版本之间做比较。

 这个工具目前我们是不会用到,因为前面学习基础语法,不是做项目,等后面做项目,项目有多个版本,找出版本差异这时候这个工具就牛逼了。对这个工具怎么使用,大家可以自己找教程。反正这个工具是后期的一个重要工具。先不着急下载,但是你得有个印象,就是说后面提到你只需知道用这个东西是干嘛用的即可。

你可能感兴趣的:(C++学习——奇牛学院,学习)