Visual C++.NET编程讲座之五

第4讲 对话框的界面世界

摘要

本讲先来讨论对话框界面设计的一般过程和技巧,然后创建对话框类并用模式和无模式的方式来显示对话框。

对话框的界面设计过程

对话框是Windows应用程序中最重要的用户界面元素之一,它是通过对话框上的各种控件来和用户进行交互的。所谓"控件",是指具有一定功能的界面单元,如按钮、编辑框、列表框、组合框等。在这里,我们先来讨论对话框的界面设计过程。

1. 添加对话框资源

(1) 启动Visual Studio .NET,打开上一讲的单文档应用程序项目Viewer。

(2) 打开"项目"菜单,单击"添加资源",弹出"添加资源"对话框,如图1所示。

图1 "添加资源"对话框

(3) 在该对话框中,"导入"按钮是从外部导入一个已有的资源,"自定义"是用来创建一个新的资源类型。在"资源类型"中选定"Dialog",然后单击"新建"按钮。这时"添加资源"对话框消失,回到Visual C++ .NET开发环境。可以看到,系统为对话框资源自动赋给它一个默认的标识名称IDD_DIALOG1,且有两个按钮:"确定"和"取消",在左侧对话框编辑器窗口中,还会自动弹出工具箱窗口。

(4) 单击工具箱窗口上的" ",使工具箱窗口停靠在开发环境的左侧,不再会自动隐藏。

(5) 在对话框的空白处,单击鼠标,将会在属性窗口中显示出对话框资源的属性。图2所示的仅是展开"字体"属性的情形,可以看出:对话框属性有"外观"、"位置"、"行为"、"杂项"和"字体"。其中,对话框Caption(标题)属性在"外观"中,ID属性在"杂项"中,如图2所示。

图2 对话框资源的属性

(6) 保留默认的对话框资源ID号,在属性窗口中,将该对话框的标题内容改为"设置"。

2. 在对话框加添加和布置控件

在对话框中添加控件的方法有很多,这里我们推荐这样的方法:在"工具箱"窗口中,单击要添加的控件并按住鼠标不放,然后移动到对话框中,此时鼠标指针带有一个"+",在需要添加的位置处松开鼠标,这样就添加了该控件。一旦控件添加后,我们可以使用下列一些方法来布置控件。

第一个方法是使用网格和参照线。默认时对话框显示的是参照线,如图3所示,控件的位置一般不能超过参照线的范围,但我们可以通过对话框四周的尺寸柄来调整对话框的尺寸,同时参照线也会自动调整。单击对话框编辑器工具栏上的"网络"按钮 ,就会打开网络,一旦网格显示,添加或移动控件时都将自动定位在网格线上。

图3 对话框资源编辑器

第二个方法是使用对话框编辑器工具栏。对话框编辑器工具栏上包含用于对话框控件布局的工具按钮,如图4所示,它与"格式"菜单下的菜单项命令相对应。

图4 对话框编辑器工具栏

需要说明的是,

① 在使用布局命令之前,首先要选取要布局的控件,一般有好几个,称为控件组,这时只有一个控件周围有实心小方块(一般有八个),这个控件称为"主导控件",布局操作都是以这个"主导控件"为参照的。

② 选取多个控件的方法有两个。一是框选,即:拖动鼠标指针,在对话框中要选择的控件周围画一个选框。当释放鼠标按钮后,选框内和与该框相交的所有控件都被选定。二是单选,即先按住Ctrl或Shift键,然后单击要选择的控件。若按住的键是Shift,则再次单击已选定的控件,那么该控件被取消选定。

③ 当按住Ctrl键后,再单击控件,则该控件就是"主导控件"。

3. 为对话框创建一个类

要想显示和控制对话框,必须先为其创建一个对话框类,如下面的过程:

(1) 在对话框编辑器中,双击对话框的空白处,或右击对话框,弹出快捷菜单,单击"添加类",弹出"MFC类向导"对话框。

(2) 在"类名"框中,键入创建的类名CSetDlg,注意我们一般将大写字母C作为类名的第一个字符,以与其它标识符相区别。

(3) 从"基类"组合框中选择"CDialog"(MFC对话框类),结果如图5所示。其中,".h文件"和".cpp文件"用来指定新类的头文件和实现文件。单击 按钮,可以从弹出的对话框中指定一个已有的文件或其他文件位置,一般不更改默认的代码文件名称。

图5 添加类

(4) 单击"完成"按钮,新的对话框类CSetDlg就创建好了。

时间: 2024-10-29 00:12:56

Visual C++.NET编程讲座之五的相关文章

Visual C++.NET编程讲座之四

第3讲 菜单.工具栏和状态栏之间的交互 摘要 本讲先来用资源编辑器对菜单和工具栏进行可视化设计,然后讨论命令消息的COMMAND和UPDATE_COMMAND_UI消息映射,并说明了工具按钮和菜单命令的联动方法,最后讨论工具栏的显示和隐藏.快捷菜单的实现,以及在状态栏上如何显示指定文本的方法. 菜单的可视化设计及其命令映射 在上一讲中,我们主要讨论了文档数据的读取和显示,在这里我们先来打开上一讲中的单文档应用程序项目Viewer,然后对其菜单和工具栏进行设计.需要说明的是,Visual C++

Visual C++.NET编程讲座之七

摘要 本讲先来介绍MFC中的"一档多视"模式,并为Viewer添加一个用于显示Web页的视图CWebView,然后讨论两种比较常用的单文档视图的切换方法,最后对这两种方法进行分析和比较. MFC"一档多视"模式 我们知道,MFC应用程序用一种编程模式使程序中数据与它的显示形式和用户交互分离开来,这种模式就是"文档/视图结构".在单文档应用程序结构中,一个文档对应于一个视图.但有时一个文档可能需要多个视图以改变文档数据的显示方式,称为"一

Visual C++.NET编程讲座之八

程序的安装和部署 摘要 本文先来介绍安装和部署前的准备,然后用向导创建一个安装和部署项目,并修改项目的属性,最后讨论如何使用自己的标题图像.添加"序列号"对话框及生成程序菜单项和桌面图标. 安装和部署前的准备 一旦应用程序项目开发好了之后,就要创建一个安装程序供用户进行安装.早期的安装程序大多数是使用InstallShield来制作的,InstallShield一个最大的特点是可以使用其内嵌的脚本语言InstallScript来定制自己的安装过程和安装界面.不过,现在我们还有一个更简便

Visual C++.NET编程讲座之六

第六讲 对话框的功能实现 对话框就好比是一个容器,只有将一些控件添加在这个容器中,才能实现用户与对话框之间的交互.下面我们将前面的对话框设计成如图13所示的界面,其功能是用来让用户调整视图客户区的背景颜色,设置的效果可在下方的矩形框中预览. 图13 设计的"设置"对话框 1. 界面实现的技巧 在图13所示的对话框中所用到的控件有:组框 .静态文本 .编辑框 .旋转控件 和图片控件 . 需要说明的是: ① "静态文本"."组框"和"图片控

.NET 并行(多核)编程系列之五 Task执行和异常处理

原文:.NET 并行(多核)编程系列之五 Task执行和异常处理 .NET 并行(多核)编程系列之五 Task执行和异常处理 前言:本篇主要讲述等待task执行完成. 本篇的议题如下: 1. 等待Task执行完成 2. Task中的异常处理   系列文章链接: .NET 4 并行(多核)编程系列之一入门介绍 .NET 4 并行(多核)编程系列之二 从Task开始  .NET 4 并行(多核)编程系列之三 从Task的取消  .NET 4 并行(多核)编程系列之四 Task的休眠  .NET 并行

《Visual Basic 2012入门经典》----第1章 全身心投入:Visual Basic 2012编程之旅 1.1 开始使用Visual Basic 2012

第1章 全身心投入:Visual Basic 2012编程之旅 Visual Basic 2012入门经典在本章中,读者将学习: 创建一个简单但有一定功能的Visual Basic应用程序:让用户浏览硬盘:显示硬盘中的图片:熟悉一些编程术语:学习Visual Studio 2012 IDE.学习一门新的编程语言因其难度可能使人望而却步.如果您从来没有编写过程序,那么输入有些神秘的文本就可以产生精美的.功能强大的应用程序,这种行为对您来说可能就像一种魔法,您可能会想知道如何才能学会需要掌握的东西.

vb.Net编程简介之五(轉)

编程 窗体与控件    Visual Basic.NET包含了一个新的窗体包:Windows窗体.Windows窗体与Visual Basic 6.0窗体间保持了最大的兼容性:然而,还是有一些需要提出的关键差异:    Windows窗体不支持OLE container控件:你需要在Visual Basic 6.0应用中避免使用该控件.    在Windows窗体中没有Shape控件.矩形和圆角形状控件会升级为Label控件,椭圆和圆形无法升级.你需要在Visual Basic 6.0应用中避免

多线程在Visual C#网络编程中的应用

visual|编程|多线程|网络 网络应用程序的一般都会或多或少的使用到线程,甚至可以说,一个功能稍微强大的网络应用程序总会在其中开出或多或少的线程,如果应用程序中开出的线程数目大于二个,那么就可以把这个程序称之为多线程应用程序.那么为什么在网络应用程序总会和线程交缠在一起呢?这是因为网络应用程序在执行的时候,会遇到很多意想不到的问题,其中最常见的是网络阻塞和网络等待等. 程序在处理这些问题的时候往往需要花费很多的时间,如果不使用线程则程序在执行时的就会表现出如运行速度慢,执行时间长,容易出现错

visual studio-c++界面编程 一些专业问题以及推荐

问题描述 c++界面编程 一些专业问题以及推荐 自学C++断断续续的也有好几年了,感觉差不多了,该进军界面开发了. 那么现在问题来了: 1.这个界面开发如果用专业术语叫什么?就是各位C++大大们书本上怎么称呼的呢? 2.界面开发的那些QT啊,Microsoft Visual Studio啊,build C++啊这些软件叫什么呢? 是叫IDE(集成开发环境)吗? 3.然后NET Framework,win32 API,MFC的类库这些又怎么称呼呢? 4.C++界面开发的软件有哪些呢?这些软件分别用