VISUAL C++ 简介
VC++集成开发环境(IDE) 工具栏 菜单栏 工作区 编辑区 输出窗口
工作区 类似于资源管理器
编辑区
输出窗口 输出编译过程及结果 输出搜索结果 输出debug过程中的变量值
菜单栏(MENU BAR)
一些细节问题 添加消息处理代码 编译连接和运行 Visual C++6.0的文件说明
VISUAL C++6.0的文件说明 .dsw 文件: 工作空间文件,一个工作空间可以包括 几个工程文件 .dsp 工程文件 .opt 是工作空间文件的配置文件 .clw类和资源信息的文件 .rc 资源文件:包含位图,菜单之类的资源 Debug和Release文件夹 exe,dll,以及lib文件
组建(COMPILE)和运行(RUN) 组建按钮 Debug or Release Mode 运行按钮 Stop Debugging 按钮 调试窗口
WINDOWS应用程序设计基础 Windows应用程序是按照“事件→消息→处理”非顺序 的机制运行。当有某个事件(如单击鼠标、键盘输入 和执行菜单命令等)发生时,Windows会根据具体 的事件产生对应的消息,并发送到指定应用程序的消 息队列;应用程序从消息队列中取出消息,并根据不 同的消息进行不同的处理。
MFC应用程序框架 MFC将windows API函数进行分类封装,大大简化 了编程的难度。
使用APPWIZARD创建MFC应用程序框架
MFC应用程序框架说明
CWinAPP 自建的C*APP是CWinAPP的子类 而CWinAPP的三个最重要的成员函数: InitInstance() 初始化应用程序, Run函数处理消息 循环,最后ExitInstance安排结束运行时的清除要求 。
CTestView:CMainFrame 因为CMainFrame是CTestView的父类,一般我们 不修改CMainFrame类而更多的在CTestView中进 行修改
CTestView和CTestDoc CTestView显示数据 而数据来源于CTestDoc 我们可以理解为CTestDoc主要作用是读取数据( Input) 而CTestView是将数据处理后显示出来(Output)
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
非模态对话框和模态对话框
控件 作用:接收用户信号 独立的可视化小部件 对话框与用户交互的重要桥梁 构成应用程序窗体的重要组成部分
常用控件 Static Text Picture Edit box Push Button Check box Radio Button Group Box List Box Combo Box Scroll bar
使用控件
使用控件
使用控件
使用控件
消息的种类 键盘 鼠标 窗口 焦点 定时器 命令
来自键盘的消息 WM_CHAR WM_KEYDOWN WM_KEYUP
来自键盘的消息
来自键盘的消息
来自鼠标的消息 WM_MOUSEMOVE WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONCLICK
来自窗口的消息 WM_CREATE WM_DESTROY WM_CLOSE WM_MOVE WM_SIZE WM_PAINT
来自焦点的消息 WM_SETFOCUS WM_KILLFOCUS
定时器消息 WM_TIMER 定时器的使用请参见课本75页
命令消息 WM_COMMAND
使用消息机制的应用实例
使用消息机制的应用实例
使用消息机制的应用实例
使用消息机制的应用实例 在CMsgDlg::OnInitDialog中将m_1中的pBtn指向 m_2的地址,将m_2的pBtn指向m_1的地址。 这样,从m_1可以控制m_2,从m_2也可以控制m_1.
使用消息机制的应用实例
类向导的使用 启动类向导: 查看->建立类向导 右键->建立类向导 Ctrl+W
使用类向导添加消息处理函数 第一种方法:
使用类向导添加消息处理函数 第二种方法:
使用类向导添加消息处理函数 双击左边栏中的选项(或用Add Handler)来添加消 息处理函数:
使用类向导添加消息处理函数 完成后选择Edit Existing:
添加成员变量 与添加消息函数类似,也有两种方法。
添加新类 三种方法:1.通过建立类向导:
添加新类 插入->类 右键工作区->New Class
工具栏 什么是工具栏?
编辑工具栏 工作栏不做为单独功能出现,可以理解为菜单的快捷 方式:
添加工具栏
添加工具栏 在CMainFrame::OnCreate函数中添加:
添加工具栏 添加了一条工具栏:
显示/隐藏工具栏 为新添加的工具栏添加显示/隐藏菜单。
显示/隐藏工具栏
显示/隐藏工具栏
显示/隐藏工具栏
如何让新建的工具栏变得可用?
修改状态栏
修改状态栏 在CMainFrame类中找到并添加:
修改状态栏
修改状态栏
VISUAL C++ 编程中的图形 图形设备接口(Graphic device interface) 链接硬件设备和图像输出的中间接口 可以使用GDI的类叫做GDI类,对应的GDI对象包括: CBitmap CBrush CFont CPen CRgn CPallete
使用画笔类对象进行画线
设备描述表(DEVICE CONTEXT) Windows的绘图操作必须通过调用设备描述表(DC) 来实现。 调用DC的方法: GetDC(); BeginPaint(); CClientdc dc;
使用画笔类对象进行画线
使用画笔类对象进行画线
使用画笔类对象进行画线
使用画笔类对象进行画线
使用画笔类对象进行画线 dc.SetROP2(R2_NOT): 逆转当前绘图颜色 在这种模式下,首次画出的线是可见的,同一位置再 画一遍时,线就不见了。
画刷类的使用
带位图的画刷对象
带位图的画刷对象