第三章 单文档应用程序

合集下载

第三章对话框和常用控件69

第三章对话框和常用控件69
第三章对话框和常用控件
3.1 对话框的使用 3.2 控件的创建和使用方法 3.3 常用控件 3.4 通用对话框和消息对话框 3.5 综合应用
3.1对话框的使用
在Visual C++ 6.0应用程序中,使用一个对话框通常有两种情形:一是直接创建一个 对话框应用程序,二是在一个应用程序中进行调用。为不失一般性,这里介绍第二种对话 框使用情况的一般过程,即依次如下:
3.1对话框的使用
项目 ID框 标题框 字体按钮 位置X/位置Y 菜单框
类名称框
图3.3 对话框属性窗口 表3.2 对话框的常规(General)属性
说明 修改或选择对话框的标识符名称 输入对话框的标题名称,中英文均可,如“我的对话框” 单击此按钮可选择字体的种类(如宋体)及尺寸(如9号) 对话框左上角在父窗口中的X、Y坐标,都为0时表示居中 默认值为无,当对话框需要菜单时输入或选择指定的菜单资 源 默认值为无,它提供C/C++语言编程时所需要的对话框类名, 对MFC类库的资源文件来说,该项不被激活。
● 自动出现“对话框资源编辑器”窗口,在这里可以通过“控件工具栏”和“布 局工具栏”向对话框添加和布局控件,并可设置对话框的属性。
需要说明的是,第一次使用Visual C++6.0的对话框编辑器时,“控件工具栏”和 “布局工具栏”可能是浮动,可以将其拖放到指定位置(参看图3.2),以便让开发环境 更易于操作。
3.1对话框的使用
图3.8 布局前的静态文本控件
图3.9 布局后的静态文本控件
3.1.4 创建对话框类 在对话框资源模板的空白区域(没有其他元素或控件)内双击鼠标或按Ctrl+W快 捷键,将弹出一个对话框,询问是否为对话框资源创建一个新类。

C++课后习题

C++课后习题

C++课后习题第一章1.选择题(1) 应用程序向导AppWizard的作用是,通过类向导可以增加消息映射和成员变量。

(2) 项目工作区窗格一般在集成开发环境的左侧,他展示一个项目的几个方面,他们分别是类视图、资源视图和文件视图。

(3)用户可以通过项目工作区窗格的资源视图来查看资源。

(4)项目工作区文件的扩展名为.dsw(5)菜单选择可以通过两种方法来进行:一种是鼠标选择;另一种是键盘选择(6)编译程序的快捷键是Ctrl+F7 ,链接程序的快捷键是F7 ,运行程序的快捷键是Ctrl+F5(7)编译微型条工具栏最右边按钮的功能是Insert/Remove Breakpoint(8)快捷键或菜单及相关资料符号的前缀是IDR2.选择题(1)用应用程序向导AppWizard创建C++源文件,应选择(A )选项卡。

A.FilesB.ProjectsC.WorkspacesD.Other Documents(2)项目文件的扩展名( B )。

A. .exeB. .dspC. .dswD. .cpp(3)Standard 工具栏中最左边按钮与(C )菜单命令的功能一样。

A.NewB.New FileC.New Text FileD.New Workspace(4)Windows资源提供的资料编辑器不能编辑(C )。

A.菜单B.工作栏C.状态栏D.位图3.判断题(1)通过应用程序向导AppWizard建立的程序不能被立即执行。

(×)(2)打开一个项目,只需打开对应的项目工作区文件。

(√)(3)用户可以通过选择T ools | Customize菜单命令设置集成开发环境的工具栏。

(√)(4)在同一项目中,Visual C++在内部用来标识资源的资源符号不能重复。

(√)(5)在Windows环境下,资源与程序源代码紧密相关。

(×)4.简答题(1)什么是项目?它是由什么组成的?(2)解释项目工作区中各个视图的功能。

VC++实验指导书

VC++实验指导书

Visual C++程序设计实验指导书实验1 认识Visual C++6.05中文版开发环境实验内容(1)熟悉VisualC++6。

05的开发环境。

(2)操作工具栏和项目工作区窗口。

(3)用应用程序向导创建一个控制台应用项目Ex_Hello。

(4)输入并执行一个新的C++程序Ex_Simple.实验准备和说明(1)建议在本教材第一次上课时进行本次实验。

(2)熟悉Windows 2000或XP操作系统的环境和基本操作。

(3)熟悉实验报告的书写格式,这里给出一下建议:实验报告采用A4纸,封面一般包括实验目次.实验题目,班级,姓名,日前和机构名称.报告内容一般包括实验目的和要求。

实验步骤,实验思考和总结。

需要指出的是,实验步骤不是书本内容的重复,而是自己结合实验内容进行探索的过程,教师也可根据具体情况提出新的实验报告格式和新的要求.(4)阅读以下关于VisualC++的说明:Visual C++是Microsoft公司推出的目前使用极为广泛的基于WINDOUWS平台的可视化编程环境。

是在以往的版本不断更新的基础上形成的,其功能强大,灵活性好,完全可以扩展以及具有强有力的Internet支持,在各种c++语言开发工具中脱颖而出,成为目前最为流行的C++语言集成开发环境。

Visual C++6。

0分为标准版,企业版和专业版3种,但其基本功能是相同。

Visual C++6。

5中文版是在Visual C++6。

0基础上进行汉化的以一个版本,本书以此版本作为编程环境。

为统一起见,我们仍称之为Visual C++6.0。

实验步骤1。

打开计算机,启动windouws2000操作系统2。

建工作文件夹3。

启动Visual C++6.04。

创建一个控制台应用项目5。

认识开发环境界面6。

认识工具栏7。

工具栏的显示和隐藏8.工具栏的浮动与停泊9。

项目工作区窗口10。

修改代码,编译运行11。

输入一个新的C++程序12。

修正语法错误13.退出Visual C++6。

山东专升本计算机章节知识点总结

山东专升本计算机章节知识点总结

第一章信息技术与计算机文化1.1信息与信息技术1.控制论创始人信息论创始人2.信息是在自然界、人类社会和人的思维活动中普遍存在的一切物质和事物的属性。

()3.数据是信息的,是信息的,信息是对数据进行加工后得到的结果。

信息是数据的。

4.有数据不一定有信息,有信息一定有数据。

()5.信息高速公路特点:、、(1993 年提出)6.(时间),在(地点),召开第三届。

7.所谓计算机文化,就是以计算机为核心,集网络文化、信息文化、多媒体文化于一体,应对社会生活和人类行为产生广泛、深远影响的新型文化。

()8.人类文化发展的四个里程碑:、、、1.2计算机技术概论9、布尔:查尔斯.巴贝奇:10.第一台电子计算机:,(时间)(地点)第一台电子计算机特点:①②③11.计算机的发展年代名称元件语言应用第一代第二代第三代第四代12.我国计算机的发展:1958 年1964 年1971 年1983 年13.计算机特点:①②③④⑤⑥14.计算机的分类:按照处理的对象划分:、、按照计算机用途划分:、按照计算机规模划分:、、、、15.计算机的应用:①(数值计算)②(数据处理)③④计算机辅助设计()CAM计算机辅助教育()CAE CAI计算机管理教学()计算机辅助测试()CIMS⑤:开发了、、、⑥:计算机的发展趋势:、、、⑦⑧1.3计算机中信息的表示16.数制:连续的几个1是2的几次方减1(2n-1),1后边连续几个0是2的几次方17.B O D H19.逻辑运算规则:∧∨⊕–逻辑异或运算(XOR ):0⊕0=0, 0⊕1=1, 1⊕0=1, 1⊕1=0逻辑与运算(AND ):0∧0=0, 0∧1=0, 1∧0=0, 1∧1=1逻辑或运算(OR ): 0∨0=0, 0∨1=1, 1∨0=0, 1∨1=1逻辑非运算(NOT ):互为相反逻辑异或运算即实现按位加的功能,只有当两个逻辑值不同时,结果才为 1 18.位(bit )也成为,简记为b ,是计算机存储数据的。

3计算机文化基础-第三章Windows操作系统2

3计算机文化基础-第三章Windows操作系统2

资源管理器的浏览
在资源管理器的文档窗口中,在驱动器图
标或文件夹的前面有一小方框ቤተ መጻሕፍቲ ባይዱ其中有一个加
号“+”或者减号
“-”。“+”表示该文件夹下
面还有下级文件夹,但没有在树格中显示出来
。“-”表示该文件夹下面有下级文件夹,而且
已经在树格中显示出来了。
鼠标右键在资源管理器中的应用
在资源管理器中,通过用鼠标右键单击
3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 Windows 98 的桌面 鼠标及其操作 应用程序 Windows 窗口 对话框和控件 剪贴板
3. 2. 1
Windows 98 的桌面
Windows 98 桌面
当启动 Windows 98 系统后,我们
可以看到如下图 的Windows 98桌面。
我的电脑
网上邻居
Windows 98 桌面 (图)
回收站
开始菜单
任务栏
3. 2. 2
鼠标及其操作
1、鼠标指针
指 针 特定含义
标准选择
帮助选择
指 针
特 定 含 义
调整窗口垂直大小
调整窗口水平大小
后台操作

沿对角线调整
沿对角线调整
文字选择
手写
移动窗口
超级链接选择
不可用
精度选择
2、鼠标操作
•鼠标器的基本操作有以下四种类型。 –指向:移动鼠标器,将鼠标器的针形光标放到某一项目上。 –单击:在屏幕上指向一个项目,然后以适当的速度按下并 释放鼠标按钮。单击主要用来选择屏幕上的项目或打开快捷 菜单。单击鼠标左键称为左击,单击鼠标右键称为右击。
中文Windows 95 操作系统

《Visual_C++程序设计教程》第三章MFC中的资源与界面设计

《Visual_C++程序设计教程》第三章MFC中的资源与界面设计
1.MFC概述 MFC中的各种类结合起来构成了一个应用程序框架,它的 目的就是让程序员在此基础上建立Windows下的应用程序, 这是一种相对SDK来说更为简单的方法。总体上,MFC框 架定义了应用程序的轮廓,并提供了用户接口的标准实现 方法,程序员所要做的就是通过预定义的接口把具体应用 程序特有的东西填入这个轮廓。Microsoft Visual C++提 供了相应的工具来完成这个工作:AppWizard可以用来生 成初步的框架文件(代码和资源等);资源编辑器用于帮 助程序员直观地设计用户接口;ClassWizard用来协助将 代码添加到框架文件中;编译则是通过类库实现了应用程 序特定的逻辑。
3.2.5 位图
位图是一个与显示像素对应的点阵结构,它由 一系列按位排列的数据组成,这些数据分别表 示各个像素点的颜色信息。位图的颜色数目与 用来存放颜色数据的位数直接相关,常见的有 2色、4色、16色、256色、增强色(16位) 和真彩色(32位和24位)等。Windows支持两 种类型的位图:设备相关位图(Device Dependent Bitmap,DDB)和设备无关位图 (Device Independent Bitmap,DIB)。
5)视图 视图类从CView或它的派生类派生。视图和文档联系在一起, 在文档和用户之间起中介作用,即视图在屏幕上显示文档的 内容,并把用户的输入转换成对文档的操作。 6)文档模板 文档模板类一般不需要派生。MDI应用程序使用多文档模板 类CMultiDocTemplate,SDI应用程序使用单文档模板类 CSingleDocTemplate。 应用程序通过文档模板类对象来管理上述对象(应用程序对 象、文档对象、主边框窗口对象、文档边框窗口对象和视图 对象)的创建。
3.1.3 MFC消息管理

Intel Visual Fortran 编译器的使用教程

Intel Visual Fortran 编译器的使用教程
第六章 图形程序设计.............................................................................................................. - 74 6-1 GDI 绘图 .................................................................................................................. - 74 -
第五章 QuickWin 基本控件的使用 ........................................................................................ - 34 5-1 控件的使用方法 ........................................................................................................ - 34 5-2 各种控件的用法 ........................................................................................................ - 42 5-3 创建工具栏 ................................................................................................................ - 66 -
Intel Visual Fortran 2010
编译器的使用教程

VS2020和MFC编程入门之2(利用MFC向导生成单文档应用程序框架)

VS2020和MFC编程入门之2(利用MFC向导生成单文档应用程序框架)

VS2020/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)这里给大伙儿一个简单的例子,演示如何生成单文档应用程序框架。

解决方案与工程在VS2020的利用介绍中已经讲了解决方案与工程的概念,那个地址再重提一下。

每一个应用程序都作为一个工程来处置,它包括了头文件、源文件和资源文件等,这些文件通过工程集中治理。

在VS2020中,工程都是在解决方案治理之下的。

一个解决方案能够治理多个工程,能够把解决方案明白得为多个有关系或没有关系的工程的集合。

VS2020提供了一个Solution Explorer解决方案阅读器视图,能够显示当前解决方案的内容,当新建一个工程时能够选择新建一个解决方案仍是加入当前解决方案。

以下图左侧面板中正在显示的视图确实是Solution Explorer,视图中有一个解决方案-HelloWorld,此解决方案下有一个同名的工程-HelloWorld。

在应用程序向导生成应用程序后,VS2020会在用户设置的途径下,以解决方案名为名称成立一个目录,里面寄存自动生成的文件。

利用VS2020应用程序向导生成单文档应用程序框架那个地址简略演示下如何生成单文档应用程序框架,让大伙儿先有个直观的了解,有不睬解的地址能够留着以后回来再看。

下面依照操作步骤一步步讲解:1.点菜单栏File->New->Project,弹出New Project对话框,咱们能够选择工程类型。

若是安装完VS2020以后第一启动时已经设置为VC++,那么Installed Templates->Visual C++项会默许展开,而若是没有设置VC++,那么能够展开到Installed Templates->Other Languages->Visual C++项。

因为咱们要生成的是MFC程序,因此在“Visual C++”下选择“MFC”,对话框中间区域会显现三个选项:MFC ActiveX Control、MFC Application和MFC DLL。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章单文档应用程序在本学习情境中主要学习:(1)单文档应用框架(2)文档与视图3.1 MFC消息处理3.1.1事件驱动程序设计事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。

对于需要用户交互的应用程序来说,事件驱动的程序设计有着过程驱动方法无法替代的优点。

它是一种面向用户的程序设计方法,它在程序设计过程中除了完成所需功能之外,更多的考虑了用户可能的各种输入,并针对性的设计相应的处理程序。

它是一种“被动”式程序设计方法,程序开始运行时,处于等待用户输入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事件状态。

它的框图如图1所示:图1事件驱动程序模型3.1.2 MFC的消息处理在DOS应用程序下,可以通过getchar()、getch()等函数直接等待键盘输入,并直接向屏幕输出。

而在Windows下,由于允许多个任务同时运行,应用程序的输入输出是由Windows 来统一管理的。

Windows操作系统包括三个内核基本元件:GDI, KERNEL ,USER。

其中GDI(图形设备接口)负责在屏幕上绘制像素、打印硬拷贝输出,绘制用户界面包括窗口、菜单、对话框等。

系统内核KERNEL支持与操作系统密切相关的功能:如进程加载,文本切换、文件I/O,以及内存管理、线程管理等。

USER为所有的用户界面对象提供支持,它用于接收和管理所有输入消息、系统消息并把它们发给相应的窗口的消息队列。

消息队列是一个系统定义的内存块,用于临时存储消息;或是把消息直接发给窗口过程。

每个窗口维护自己的消息队列,并从中取出消息,利用窗口函数进行处理。

框图2如下:图2 消息驱动模型从消息的发送途径上看,消息分两种:队列消息和非队列消息。

队列消息送到系统消息队列,然后到线程消息队列;非队列消息直接送给目的窗口过程。

Windows维护一个系统消息队列(System message queue),每个GUI线程有一个线程消息队列(Thread message queue)。

鼠标、键盘事件由鼠标或键盘驱动程序转换成输入消息并把消息放进系统消息队列,例如WM_MOUSEMOVE、WM_LBUTTONUP、WM_KEYDOWN、WM_CHAR等等。

Windows每次从系统消息队列移走一个消息,确定它是送给哪个窗口的和这个窗口是由哪个线程创建的,然后,把它放进窗口创建线程的线程消息队列。

线程消息队列接收送给该线程所创建窗口的消息。

线程从消息队列取出消息,通过Windows把它送给适当的窗口过程来处理。

除了键盘、鼠标消息以外,队列消息还有WM_PAINT、WM_TIMER和WM_QUIT。

这些队列消息以外的绝大多数消息是非队列消息。

通过消息映射,我们可以把消息和它的消息处理函数联系起来。

VC++为我们提供了Class Wizard 来为用户添加一个消息映射关系,而用户只需编写该消息发生响应的函数即可。

从View菜单中选择“ClassWizard”命令,便可调出如图3所示的ClassWizard对话框,它一共分为五个选项卡,依次分别是消息映射、成员变量、自动化、ActiveX事件和类信息。

最常用的是消息映射和成员变量两个选项卡,如果程序中使用了ActiveX控件,那么还需要使用ActiveX事件选项卡来添加事件处理函数,类信息选项卡可用来了解各个类的文件名、基类和资源等信息,自动化选项卡只有在编写OLE自动化服务器时才用得着。

下面我们就来看看消息映射和成员变量两个选项卡的特点和用途。

消息映射选项卡主要用途是为选中的类添加消息处理函数。

其中,Projects组合框用于选择Workspace中的一个工程,Class name组合框用于选择工程中的一个类。

Objects IDs中列出了所选择的类的名称及属于它的一系列ID,对于CXXXView类来说,列出的ID基本上都是菜单命令,对于一个对话框类来说,列出的ID多数对应着对话框模板中的控件。

从Objects IDs选择不同的类名或ID后,右边的Messages列表框中的内容也会跟着改变,选中类名时,Messages列表框中会显示出所有该类能处理的标准Windows消息以及该类可以重载的成员函数,选中一个ID时,Messages列表框中会显示出这个ID对应的对象(菜单选项或控件)所能引发的命令消息和通知消息。

在Messages列表框中选择一条消息(或一个可以重载的成员函数)后,如果该消息还没有相应的消息处理函数(或还未重载该成员函数),那么ClassWizard对话框右上角的Add Function按钮就会变为有效,提示我们可以添加一个消息处理函数(或重载该成员函数),按下Add Function按钮后,ClassWizard 就会在所选的类中添加一个处理函数(为一个ID添加处理函数时,还会弹出一个对话框,要求输入函数名),并在Member funtions列表框中显示出刚添加的函数,在这个列表框中双击该函数名后,ClassWizard对话框将自动关闭,文本编辑器会定位在函数的实现代码处,这些代码及它在类定义中的声明都是由ClassWizard自动生成的。

图3Class wizard 对话框Member functions列表框并没有列出类的所有成员函数,而只是列出了消息处理函数和重载的成员函数,其中每个函数的左边都有一个小图标,如果小图标为“W”字样,表示该函数是一个消息处理函数,除了Add function按钮外,消息映射选项卡中还有三个按钮,其中Delete Function用来删除一个消息处理函数或重载的成员函数,但是此按钮只能删除函数在类定义中的声明,函数的实现代码还需要手工来删除;Edit Code按钮的用途相当于在Member functions中双击一个成员函数;Add Class按钮则可用于向工程中添加一个新的类。

3.1.3 文档与视图先利用Appwizard 来新建一个单文档工程。

在SDI框架程序中,主要包含四个类:主框架类:CMainFrame用于管理主程序窗口,从MFC 类的CFrameWnd派生。

应用类:CXXXApp负责初始化及程序结束前的整理工作,从MFC 类的CWinApp派生。

文档类:CXXXDoc负责存放程序数据和在磁盘上读写数据,从MFC 类的CDocment 派生。

视图类:CXXXView负责数据的显示及处理用户的输入,从MFC类的CView派生。

用户对话框类:CAboutDlg负责用户对话框的设置,从MFC类的CDialog类派生。

文档是存储的对象.文档类负责数据的维护,包括数据的读取、存储和修改,并将更改的数据通知相关视图,另外它还负责将数据存储到文件及从文件中读取数据。

文档是一种数据源,数据源有很多种,最常见的是磁盘文件,但它不必是一个磁盘文件,文档的数据源也可以来自串行口、网络或摄像机输入信号等。

文档对象负责来自所有数据源的数据的管理。

视图类的作用是与用户交互。

视图对象负责对保存在文挡对象中的数据以某种方式进行显示,并接受用户的输入,将这些输入交文挡类进行处理。

视图是数据的用户窗口,为用户提供了文档的可视的数据显示,它把文档的部分或全部内容在窗口中显示出来。

视图还给用户提供了一个与文档中的数据交互的界面,它把用户的输入转化为对文档中数据的操作。

每个文档都会有一个或多个视图显示,一个文档可以有多个不同的视图。

比如,在Excel电子表格中,我们可以将数据以表格方式显示,也可以将数据以图表方式显示。

一个视图既可以输出到窗口中,也可以输出到打印机上。

图文档与视图关系3.1.4 鼠标消息举例我们先通过一个例子来说明如何用class wizard 来实现捕获鼠标消息,进行消息映射和定义消息处理函数.利用class wizard来设置消息选项。

选择ClassName中的CXXXView,选择其中相对应的WM_LBUTTONDOWN,双击选中的消息,单击Edit Code 按纽,如图4所示,并增加相关代码,如图5所示。

图4 增加鼠标消息映射图5 增加代码图6 运行结果3.1.4键盘消息举例键盘的输入是从扫描码开始的,windows键盘驱动程序将这些扫描码转换成为与硬件无关的形式,即虚拟键码.WM_CHAR:此消息在键被按下时产生,通常用于处理非打印键中的按键消息.图7 在工程中增加相关变量图8 增加变量Text图9 初始化变量为空图10 增加键盘的消息影射图11 编写Onchar处理函数图12 输出接收到的字符图13 运行结果为了能够实现输入字符的换行功能,在CXXXDoc类中增加一个用来计算行数的成员变量m_Line,如图14所示,并初始化变量m_Line,如图15所示。

图增加成员变量图15 初始化成员变量为了保存字符串行的数据,定义一个字符串列表变量m_strList,如图16所示。

图16 定义字符串列表变量修改CXXXView类中的OnChar函数,如下所示。

void CSDIView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags){// TODO: Add your message handler code here and/or call defaultCSDIDoc *pDoc=GetDocument();ASSERT_V ALID(pDoc);if(nChar==VK_RETURN){pDoc->m_Line++;pDoc->m_strList.AddTail(pDoc->Text);pDoc->Text.Empty();Invalidate();}else{pDoc->Text+=nChar;CClientDC dc(this);TEXTMETRIC tm;dc.GetTextMetrics(&tm);int nLineHeight=tm.tmHeight+tm.tmExternalLeading;dc.TextOut(0,pDoc->m_Line*nLineHeight,pDoc->Text);}CView::OnChar(nChar, nRepCnt, nFlags);}为了保证能够将CXXXDoc类中m_strList的数据输出出来,增加一个DrawText函数,如图17所示和图18所示。

图17 在CXXXDoc类中增加成员函数图18 增加DrawText函数实现CXXXDoc类中的DrawText函数,如下所示。

void CSDIDoc::DrawText(CDC *pDC){TEXTMETRIC tm;CString str;int line=0;pDC->GetTextMetrics(&tm);int nLineHeight=tm.tmHeight+tm.tmExternalLeading;POSITION pos=m_strList.GetHeadPosition();for(;pos!=NULL;m_strList.GetNext(pos)){str=m_strList.GetAt(pos);pDC->TextOut(0,line*nLineHeight,str);line++;}}修改CXXXView类中的OnDraw函数,如下所示。

相关文档
最新文档