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++
点击安装:
然后:
单击 visual c++ 2010 对应的“安装”按钮(或单击其他版本对应的按钮)
3.
开发第一个图形界面程序
在原项目所在的解决方案中,创建一个新项目(也可以重新创建一个新的解决方案)
右击解决方案,选择“添加”
>
“新建项目”
:
在 VS 中,一个解决方案可包含多个项目。
在新项目
G1
中创建一个新文件 mainGraphic.cpp,代码如下:
#include <graphics.h>// 引用 EasyX 图形库#include <Windows.h>int main( void ){initgraph(640, 480);// 初始化图形界面 , 画布大小为 640x480// 画一个圆circle(320, 240, 200); // 画圆,圆心 (320, 240) ,半径为 200system( "pause" );closegraph();// 关闭图形界面}
把新项目 G1 设置为找个解决方案的“启动项目”,注意:一个解决方案里可以有多个项目,而每次只能运行一个项目,我们运行某个指定的项目就得把该项目设置为启动项目。
运行 :
把新项目 G1 设置为找个解决方案的“启动项目”并运行
2、图形开发进阶
可参考
easyx
图形库的文档手册
,
学习各个接口的用法
.
效果图:
分析 :
背景色:用“画图”的拾色器获取。代码如下:
#include <graphics.h>// 引用 EasyX 图形库#include <Windows.h>int main( void ){initgraph(640, 480);// 初始化图形界面 , 画布大小为 640x480setbkcolor(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();// 关闭图形界面}
3、 黑客攻击系统-图形界面实现
效果图:
分析:
图片:600 x 340
实现:
1. 把图片资源(bg.jpg)复制到该项目的目录下,大家也可以用自己的图片:
2. 代码实现:
mainGraphic.cpp
#include <graphics.h>// 引用 EasyX 图形库#include <Windows.h>int main( void ){initgraph(600, 400);// 初始化图形界面 , 画布大小为 640x480loadimage(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();// 关闭图形界面}
思考:
各功能菜单,可以进一步完善:
鼠标移动到该菜单项时,整个菜单项就变色,
但鼠标在这个菜单上点击时,菜单项再次变色,并播放一个短暂的音效。
小练习:
效果图:
代码:
#include <graphics.h>// 引用 EasyX 图形库#include <Windows.h>#include <mmsystem.h> // mci 库头文件#pragma comment ( lib , "winmm.lib" )int main( void ) {initgraph(800, 513);loadimage(0, "jile.jpg" );mciSendString( "play 极乐净土 .mp3 repeat" , 0, 0, 0); // 重复播放system( "pause" );closegraph();}
3、职场修炼
工作遇到困难怎么办
,
问还是不问
?
问题:
做任何有难度的项目,必定会遇到困难,甚至瓶颈。
顾虑:
1. 问同事,会不会显得自己的水平不行,有损个人的逼格形象。2. 问领导(项目经理、主管等),会不会影响自己在公司的技术地位3. 憋着不问,可能搞不定,会不会影响项目进度。
案例:南京研究所,某卫星通信项目的芯片移植,进度严重受阻,被迫更换芯片。
职场陷阱: 遇到困难,诉苦,说“我不会”。 试用期,如果常常说“我不会”,将严重影响考评,甚至会被辞退。
案例:某名校(华南理工)毕业生试用期被辞退。
解决方案:
1.
提出具体的问题,越具体越好。
案例:某嵌入式设备的
WEB
服务器不会做。
就问:在
xxx
设备,
xxx
操作系统,提供
xxx
功能的
WEB
服务器,怎么做?
2.
同时提出几个备选方案,更好。
4、程序员必备工具:Beyond Compare 3(代码对比工具)
排错的最后武器
-
代码对比工具 ,明明文档或代码是一样的,为什么还是出错?
使用场合:
1. 学习时,和参考代码做比较2. 开发时,在多个版本之间做比较。
这个工具前面我们是不会用到,因为前面学习基础语法,不是做项目,等后面做项目,项目有多个版本,找出版本差异这时候这个工具就牛逼了。对这个工具怎么使用,大家可以自己找教程。反正这个工具是后期的一个重要工具。