《Visual_C++程序设计教程》对话框设计和Windows常用控件

合集下载

对话框和常用控件

对话框和常用控件
CObject CCmdTarget CWnd
CDialog
Visual C++程序设计
CDialog类从CWnd类派生而来,所以它继承了 CWnd类的成员函数,具有CWnd类的基本功能 , 在 你 的 CDialog 类 的 派 生 类 中 可 以 直 接 调 用 CDialog类的成员函数。大部分的成员函数是虚 函数,可以在你的派生类中重载,以实现特定的 目 的 。 除 了 CDialog 类 成 员 函 数 , 类 CWnd 和 CWinApp也提供了一些成员函数用于对话框的 管理。
对话框保留在屏幕的同时,用户还可以在应用程序 其它窗口中进行工作的对话框称为非模态对话框。例 如,Word字处理软件中的Find 和Replace对话框 就是非模态对话框的一个很好的例子。
4.1.2 对话框的组成
对话框模板
对话框模板定义了对话框的特性(比如大小、位 置和风格)以及对话框中每个控件的类型和位置。 程序员不仅可以使用对话框资源编辑器建立对话框 资源模板外,还可以根据需要在内存中创建对话框 模板。当对话框模板创建后,程序员好可以在创建 和管理对话框时动态地改变部分控件的信息,如禁 止、变灰、改变标题和大小。
从程序员角度来看,对话框和控件都是窗口,查看 MSDN中的MFC组织图可以看到,它们都是从 CWnd类派生来的,这正好说明了“对话框和控件都 是窗口”。因此,对对话框的操作,经常要使用窗口 的成员函数来进行。
4.1.1 对话框的分类
1.模态对话框 在对话框关闭之前,用户无法在应用程序的其它窗
口中进行工作的对话框称为模态对话框。例如 Windows的各种应用软件中的Open File 对话框, 用户不能在应用程序的其它地方工作,直到对话框关 闭。 2.非模态对话框

Windows程序设计 第3章 对话框和常见控件

Windows程序设计 第3章  对话框和常见控件

树形控件
树形控件(TreeCtrl)和下面要讲的列表控件(ListCtrl) 在系统中大量被使用,例如Windows资源管理器就是一 个典型的树形控件例子。 树形控件可以用于树形的结构,其中有一个根接点(Root) (Root) 然后下面有许多子结点,而每个子结点上有允许有一个 或多个或没有子结点。MFC中使用CTreeCtrl类来封装树 形控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
滚动条控件
滚动条(Scroll Bar)一般不会单独使用,因为SpinCtrl 可以取代滚动条的一部分作用,但是如果我们需要自己生 成派生窗口,滚动条还是会派上一些用场。创建一个滚动 条可以使用成员函数: : BOOL CEdit::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
MFC 提供类CDialog作为对话框服务的基类,类CDialog将对话框模板与使 用对话框时必需熟悉的几种类方法进行封装。对于对话框中发送消息的的 控件,我们可创建相应的消息处理程序。MFC编译器提供的框架工具使得 我们把对话框中的控件消息映像到派生类的类函数变得简单、快捷。对话 框数据映像函数使用专门的值初始化对话框中的控件,接着检索数据并使 之有效。大多数对话框需要类成员变量来跟踪用户的输入,这些数据在数 据映像中使用,它们在对话控件与类变量之间自动映像数据。 为创建对话框,首先建立CDialog对象,然后创建和显示对话框窗口我们 有两种选择:一种方法是调用函数CDialog::DoModal()来创建有模式对话 框窗口,另一种方法是调用函数CDialog::Create()来创建无模式对话框窗口, 在上述两种情况之下,对话框对象先初始化,然后创建对话框以及它的控 件。 类CDialog成员函数Create()使用两种重载原形,最常用的一种如下: Create(UINT nIDTemplate, CWnd * pParentWnd=NULL); 其中,参数nIDTemplate是一个对话框模板的标识符, 参数pParentWnd是对话框所属的父窗口。

第7章对话框及常用控件

第7章对话框及常用控件
➢下面举例介绍如何在SDI界面下创建一个对 话框。
➢【例7-1】 利用SDI方式为【例6-10】增加一 个对话框。(光盘:\第7章\例7_1~7_2)
电脑基础·实例·上机系列丛
清华大学出版社
对话框中的控件
Visual C++程序设计教程
➢控件是在系统内部定义的能够完成特定 功能的控制程序单元。在应用程序中使 用控件不仅简化了编程,还能完成常用 的各种功能。为了更好地发挥控件的作 用,用户应理解和掌握控件的属性、消 息以及创建和使用的方法。
电脑基础·实例·上机系列丛
清华大学出版社
模式对话框
Visual C++程序设计教程
➢一般情况下,模式对话框会有“OK”和 “Cancel” 按钮,单击“OK”按钮,系统认定 用户在对话框中的选择或输入有效,对话框 退出;单击“Cancel” 按钮,则是指对话框 中的选择或输入无效,对话框退出,程序回 复到原有状态。
清华大学出版社
按钮
Visual C++程序设计教程
复选框:指定控件初始化时是否可见。 复选框:指定控件组中的第一个控件, 如果该项未被选中,则此控件后的所有控件 均被看成同一组。成组的目的是可以让用户 用键盘方向键在同一组控件中进行切换。
电脑基础·实例·上机系列丛
清华大学出版社
按钮
Visual C++程序设计教程
复选框:若该复选框被选中,则为该控 件建立一个上下文相关的帮助标识符。
复选框:指定控件初始化时是否禁用。 复选框:若该复选框被选中,则用户可 以使用Tab键来选择控件。
电脑基础·实例·上机系列丛
清华大学出版社
编辑框
Visual C++程序设计教程

从零开始学VC系列教程 二.对话框及常用控件实验

从零开始学VC系列教程 二.对话框及常用控件实验

从零开始学VC系列教程二. 对话框及常用控件实验恭喜你,进入VC学习的第二节了.这一节是人机交互的基础.所谓人机交互,说通俗点就是与机器对话.然而我们现在的技术还不能像科幻片里一样与机器人直接说话就行了.所以,我们的操作意图还得通过文本输入,命令按钮等等来实现.本节内容:学会对话框调用及一些常用控件的使用方法.学习目的:学习人机交互,为软件开发提供界面基础.1.新建工程.参考第一节的方法新建一个工程,名字为Eg02完成后如下图细心的朋友一定会发现.新建的工程里还有一个对话框,ID名是IDD_ABOUTBOX这个是做什么用的呢?我们用到的软件都会有一个版权声明.通过第一章的学习,大家应该知道怎么观看这个IDD_ABOUTBOX对话框了吧.没错!双击IDD_ABOUTBOX就可以了.我们会看到如下的一个对话框这就是我们这个程序的关于对话框,一般用于版权声明及版本号标识.大家看到的这个对话框里有两个静态文本框和一个图像框(Picture),静态文本框我们在前一节已经介绍过了.大家可以修改一下版权所有这一行,填什么都可以,签个大名也行.完成以后你一定想看看效果,这个对话框怎么打开呢?其实VC已经为我们做好了.先按F7编译,然后按F5运行.大家可以看到程序运行了.单击应用程序图标,就会出现一个菜单,选最后一个[关于Eg02],关于对话框就弹出来了.当然,这是系统为我们做好的.自己怎么在程序中调用这个对话框呢?为了演示,首先参考第一节的内容添加一个按钮,然后把按钮的ID改为IDC_BTN_ABOUTME,把标题,也就是Caption 改为[关于].最终效果如下下面我们为按钮添加代码.相信大家一定还记得怎么进入代码吧..对了,双击[关于]按钮,在弹出的对话框中点[确定]就可以了.为了让大家更好的理解下面的操作,我们先要解释一下关于对话框的类.VC向导会为关于对话框建立一个类,大家看看下面的图单击标签ClassView(这里显示的是[Class…])就可以看到Eg02这个应用程序的类.第一个CAboutDlg就是关于对话框的类.CEg02Dlg对应IDD_EG02_DIALOG.中间的Ceg02App是应用程序的基础类.所以,如果要对关于对话框进行操作,就要用到类CAboutDlg,因为与此有关的函数及变量都封装在CAboutDlg中.看到这里大家可能又糊涂了,没关系,在以后的教程中,通过一些练习大家就会慢慢领会到的.这里还是先为[关于]按钮添加代码.void CEg02Dlg::OnBtnAboutme(){// TODO: Add your control notification handler code here}上面是VC为[关于]按钮添加的响应函数.我们添加代码成以下所示void CEg02Dlg::OnBtnAboutme(){// TODO: Add your control notification handler code hereCAboutDlg ADlg;ADlg.DoModal();}一共有两句,第一句是CAboutDlg ADlg;作用是定义一个变量Adlg.第二句是ADlg.DoModal();功能是调用类CAboutDlg里的一个函数DoModal();这个函数在MSDN里的解释是Call this member function to invoke the modal dialog box and return the dialog-box result when done. This member function handles all interaction with the user while the dialog box is active. This is what makes the dialog box modal; that is, the user cannot interact with other windows until the dialog box is closed.一般我们用于显示一个对话框.其实大家看看CAboutDlg这个类下面,只有两个函数DoModal()这个函数并不在这个里面.第一章我们提到过类的派生和继承.其实CAboutDlg这个类是派生于CDialog类,DoModal()这个函数是CDialog的成员函数,由于CAboutDlg是继承父类CDialog的,所以CDialog里的函数在CAboutDlg中也可以使用.下面我们来说说几个常用控件的使用.首先在IDD_EG02_DIALOG对话框中加入一个Edit(编辑框)控件.Edit一般用于输入输出数据文本.相当于VB里的TextBox.加入Edit控件后,编辑其属性为然后,我们再加一个按钮(PushButton),并编辑其属性为接下来,我们先说一下要实现的效果.很简单,在编辑框里输入一个文本,然后按显示,就把文本显示在静态文本框中.所以,这里要把静态文本编辑框的ID改为IDC_DISPLABEL下面我们为[显示]按钮添加代码void CEg02Dlg::OnBtnShow(){// TODO: Add your control notification handler code hereCString a;GetDlgItemText(IDC_EDIT_INPUT,a);SetDlgItemText(IDC_DISPLABEL,a);}其实不复杂,也只有三句,第一句定义一个CString类变量a 我们来说说GetDlgItemText这个函数吧.查查MSDN就知道函数原型了.int GetDlgItemText(int nID,LPTSTR lpStr,int nMaxCount)const;int GetDlgItemText( int nID, CString& rString ) const;大家看看就觉得奇怪了,怎么有两个原型啊?并且一个是传两个参数,另一个是传三个参数.在VC里面,同一个类下是可以存在多个同名函数的,具体调用哪个函数要看参数的不同.在这里我们传入了两个参数,所以VC会调用int GetDlgItemText( int nID, CString& rString ) const;这个函数.第一个函数是控件的ID号,第二个是字串.第二个传了地址,所以我们在下一句中用的a已经是获得IDC_EDIT_INPUT的文本了.运行效果如下下面介绍一下进度条的使用以及定时器的使用.我们要实现的效果是进度从0到满格,然后再从0到满格,依次循环.每跳一格间隔500ms,这个时间我们用定时器来实现.首先从控件条里拖出一个进程条到对话框,修改属性如下然后我们要介绍一下VC的定时器.VC里面使用定时器有多种方式,我们先介绍一种作为抛砖引玉首先添加一个Windows消息处理器.消息这个词语可能很陌生,我们会在后面很多次说明.这里先照图做在类管理器里选中Ceg02Dlg这个类,然后点右键,就会弹出一个菜单,选择[Add Windows Message Handler…],接下来会弹出另一个菜单双击WM_TIMER然后按[确定]就可以了.大家会看到,CEg02Dlg类中多了一个函数这个就是VC中的定时器响应函数.然后双击这个函数就进入代码了然后我们为Timer事件添加代码.void CEg02Dlg::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call default IDC_PROGRESS static int nPos=0;((CProgressCtrl*)(GetDlgItem(IDC_PROGRESS)))->SetPos(nPos);if(nPos<100) nPos+=10;else nPos=0;CDialog::OnTimer(nIDEvent);}首先定义一个整型的变量nPos用于记录进度条的进度值.默认时,进度条0为空,100为满格.从后的程序大家可以看到,这个变量自加到100就变为0.最难理解的就是((CProgressCtrl*)(GetDlgItem(IDC_PROGRESS)))->SetPos(nPos);首先, GetDlgItem(IDC_PROGRESS)这个函数用来获取IDC_PROGRESS的句柄,在VC里面引入了句柄这个词语,我们将在下一章中对消息和句柄进行详细的说明, 句柄是WINDOWS 用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。

《VisualC教程第二版》第4章对话框

《VisualC教程第二版》第4章对话框

4.1从C++到Windows编程
编程特点 Windows应用程序具有这样的一些特性:消息驱动机制、图形设备接口(GDI)、基于资源的程序设计、动态链接库。 消息驱动机制 DOS程序是通过调用系统的函数来获得用户输入的,Windows程序是通过操作系统发送的消息来处理用户输入的。消息驱动的机制是Windows编程的最大特点。 WinMain函数通常要完成以下几步工作: 定义并调用API函数RegisterClass注册应用程序的窗口类。 调用相关API函数创建和显示窗口,并进行其它必要的初始化处理。其中,函数CreateWindow用来创建已注册窗口类的窗口。 创建和启动应用程序的消息循环。Windows应用程序接受各种不同的消息,包括键盘消息、鼠标以及窗口产生的各种消息。Windows系统首先将消息放入消息队列中,应用程序的消息循环就是从应用程序的消息队列中检取消息,并将消息发送相应的窗口过程函数中作进一步处理。API函数GetMessage 和DispatchMessage就是起到这样的作用。 如果接收到WM_QUIT消息,则退出应用程序。
4.1从C++到Windows编程
(4)再次选择“文 件”“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C++ Source File项,在右边的“文件”下的编辑框中键入Ex_HelloMsg.cpp,单击[确定]按钮。
(5) 输入下面的代码: #include <windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox (NULL, "你好,我的Visual C++世界!", "问候", 0) ; return 0 ; }

VisualC6.0实例教程第3章对话框与控件

VisualC6.0实例教程第3章对话框与控件
Visual C++ 6.0 实例教程 第3章 对话框与控件
目录
• 对话框基础 • 标准控件 • 非标准控件 • 对话框的使用 • 控件的使用 • 实例解析
01
对话框基础
对话框的概念
01
对话框(Dialog)是一种弹出式窗 口,用于在用户与应用程序之间进 行交互。
02
对话框通常包含一组控件,如按 钮、文本框、列表框等,供用户 输入或选择数据。
控件的编辑
控件创建后,可以通过属性窗口或代码来编 辑其属性,如位置、大小、字体等。
控件的属性设置
控件的基本属性
包括控件名称、位置、大小、可见性等。
控件的扩展属性
包括字体、颜色、边框样式等,可以通过属 性窗口或代码进行设置。
控件的事件处理
要点一
控件的事件
控件在用户交互时会产生一系列事件,如单击、双击、鼠 标移动等。
对话框的分类
模态对话框
模态对话框在关闭之前会阻止用 户与其他窗口交互。
非模态对话框
非模态对话框允许用户在不关闭 对话框的情况下与其他窗口交互 。
对话框的设计原则
01
02
03
明确性
对话框的设计应清晰明了, 易于理解。
可用性
对话框应易于使用,避免 不必要的复杂性。
一致性
对话框的风格和布局应与 应用程序的整体风格保持 一致。
复杂对话框实例
总结词
通过一个复杂的对话框,学习如何实现更高级的对话框 功能,如自定义对话框样式、添加控件和处理控件事件 等。
详细描述
创建一个复杂的对话框,包括添加按钮、文本框、列表 框等控件,并编写代码以处理用户与控件的交互事件。 通过这个实例,可以掌握更高级的对话框使用技巧。

对话框及常用控件

对话框及常用控件

统一的视觉风格
对话框的视觉风格应与应 用程序的整体风格保持一 致。
合适的色彩搭配
对话框的颜色搭配应符合 应用程序的主题和风格, 同时也要考虑色彩的对比 度和舒适度。
精美的图标和插图
对话框中可以适当地使用 图标和插图,以提高视觉 效果和用户体验。
一致性
对话框布局一致
不同对话框的布局和组件应保持一致,以提高用户对 应用程序的熟悉度和使用效率。
提示对话框
总结词
提供简短信息或警告的对话框
详细描述
提示对话框通常用于向用户显示应用程序的状态或提 供简短的通知。它包含一个标题、一条消息和一个关 闭按钮。根据需要,提示对话框还可以包含图标以强 调其重要性。
感谢观看
THANKS
按钮
总结词
用于触发特定功能的控件
详细描述
按钮是常见的交互控件,用户点击按钮后可以触发特定的功能或操作。根据功 能,按钮可分为确认、取消、提交等类型。
列表框
总结词
用于显示和选择列表项的控件
详细描述
列表框可以显示一系列的列表项,用户可以通过鼠标或键盘选择所需的列表项。根据选择方式,列表 框可分为单选列表框和多选列表框。
对话框的分类
模态对话框
模态对话框会阻塞用户对其他界面的 操作,直到对话框关闭。这类对话框 常用于需要用户做出决策或输入的情 况。
非模态对话框
非模态对话框不会阻塞用户对其他界 面的操作,用户可以在对话框打开的 同时进行其他操作。这类对话框常用 于显示信息或提供简单的选项。
对话框的使用场景
确认操作
01
复选框
总结词
用于表示选项是否被选中的控件
详细描述
复选框是一种开关控件,用户可以通过点击来选中或取消选中某个选项。多个复选框可 以组合在一起,表示多个选项的组合。Fra bibliotek单选按钮

轻松学VisualC之常用控件介绍

轻松学VisualC之常用控件介绍

单选框按钮例子
下面举个单选框的小例子,实现单击“查询” 按钮弹出用户所选择的职业。
5.4 复选框按钮
复选框按钮(Check Box)也是Windows提 供的又一种很常见的按钮。但是使用的时候不 需要像单选按钮那样进行分组。可以使用复选 按钮,从一组选项中选择一个选项或多个选项, 各个选项之间的选中状态互不相关。本节也只 介绍复选框最常用的操作,其它一些属性或控 件类型变量的使用可根据前几节介绍的方法自 己尝试或查看相应的帮助文档。
第5章 常用控件介绍
控件是Windows应用程序的图形界面的重要组成 部分,用户可以通过控件完成与应用程序的交互。 控件其实在MFC中是对数据和方法的封装,当然 控件就有自己的属性和方法。在MFC中,所有的 控件都是由CWnd类派生来的,所以控件可以作 为对话框的子窗口而创建。本章以对话框程序为 基础介绍一些基本和常用的控件,学习掌握 Windows控件一般的使用方法和步骤。
5.3 单选按钮
使用单选按钮(Radio Button)从一组选 项中选择唯一一个选项,当我们在填写表格 时经常会用到。例如,在一组职业中选择你 的职业等。本节讲解单选按钮最常用的操作 及一些特点。
单选按钮的特点及其应用
单选按钮(Radio Button)不同于前面讲的 那些控件,它有自己一套独特的操作方式。 单选按钮通常以组的方式呈现,在组中选择 符合要求的那个选项。
输入
信息是否已存在
N
插入
选择
Y
调整顺序
显示
5.7 列表视图控件
在5.5节讲过列表框,列表视图可以当做是 功能增强型的列表框。列表视图控件可以很 好的用来显示项目元素,在编写数据库软件 时也经常会用到。在Windows系统中文件 夹目录也是以列表视图呈现。

Visual C#程序设计应用教程第7章-Windows窗体应用程序设计

Visual C#程序设计应用教程第7章-Windows窗体应用程序设计
采用MenuScript控件即菜单设计器实 现菜单的创建。首先将MenuScript控 件放置窗口中,然后在菜单控件上的 “请在此处键入”框中单击,输入文 字,依次建立文件子菜单项。
7.4.2 工具栏控件(ToolStrip)
工具栏控件(ToolStrip)可以创建具有Windows图形界 面外观和行为的工具栏。单击工具栏中的按钮相当于 单击相应的菜单项,完成同样的功能。
SelectedIndex属性返回对应于列表框中项的索引。 SelectedItem属性返回项本身。 Items.Count属性反映列表中的项数 在ListBox控件中添加或删除项,可使用Items.Add、Items.Insert、Items.Clear 或 Items.Remove等方法实现。
7.5.2列表框控件(ListBox)
• 按钮上显示的文本包含在Text属性中。文本的外观受Font属性和textAlign属性 控制,Button控件还可以使Imag和ImageList属性在其上面显示图像。
按钮Button控件的常用属性和事件
7.2 按钮控件(Button)
消息框被Windows程序用来向用户提示相关信息。主要使用其静态方法Show( )在窗 体中显示文本、按钮和规定的图标等。Show( )有很多重载方法,根据需要分别 用在不同的场合,使用消息框的最常用方法是: MessageBox.Show(text,title);
7.1 在Visual Studio中创建窗体(Form)
在Visual Studio 2015中创建项目后自动创建窗体Form1。 窗体(Form)是Windows应用程序最主要的基本界面。窗体的属性决定了窗体的外 观和操作: 1.通过属性窗口进行窗体的属性设置 2.在窗体的通过事件过程中程序代码来设置属性

对话框和Windows标准控件

对话框和Windows标准控件

北京林业大学信息学院
实现步骤
BOOL CMyColorDialog::OnInitDialog() { CDialog::OnInitDialog(); m_nR=0; m_nG=0; m_nR=0; UpdateData(FALSE); //将设定的变量值传送给对应的控件 return TRUE; }
北京林业大学信息学院
CFontDialog类
类的成员函数 GetCurrentFont GetFaceName GetStyleName GetSize GetColor GetWeight IsStrikeOut IsUnderline IsBold IsItalic 获取当前所选字体 获取当前所选字体的字样名 获取当前所选字体的风格名 获取当前所选字体的大小 获取当前所选字体的颜色 获取当前所选字体的磅数 确定字体是否带有删除线 确定字体是否带有下划线 确定字体是否为粗体 确定字体是否为斜体 功能说明
CFileDialog类
(2) 调用成员函数DoModal()可以将对话 框显示在屏幕上,并让用户从中选择文 件。 (3) 如果 DoModal() 返回的是 IDOK,那 么调用成员函数可以获取文件信息。
北京林业大学信息学院
CFileDialog类
类的成员函数
GetPathName GetFileName GetFileExt GetFileTitle GetNextPathName GetStartPosition
北京林业大学信息学院
CColorDialog类
北京林业大学信息学院
CFontDialog类
CFontDialog类封装了标准的【字体】对话 框,使得用户可以从系统安装的字体列表 中选择要用的字体。 CFontDialog 类 的 使 用 步 骤 与 CColorDialog 的使用过程是一样的,在 用户选择了字体后,成员函数获取所选择 的字体信息。

第5章 对话框及常用控件

第5章 对话框及常用控件

CView::OnLButtonDown(nFlags, point);
} Step6:在CXXXView.CPP文件开始的#include后添加以下代码:
#include "MyDlg.h"
程序例:为模式对话框增加一个命令按钮,单击该按钮弹出一消息框。
按钮控件的常用消息有两个: 1、BN_CLICKED(单击按钮消息) 当用户单击按钮时,由按钮控件发送给对话框。 2、BN_DOUBLECLICKED(双击按钮消息) 当用户双击按钮时,由按钮控件发送给对话框。
程序例:在本例中,可学到三种改变按钮控件标题的方法: 法1:通过ClassWizard 增加资源IDD_DIALOG1的CButton 类对象 CButton m_MyBtn; 在OnInitDialog()中添加:
m_MyBtn.SetWindowText(“欢迎”);//将按钮控件标题 设为 //“欢迎”
MFC的部分对话框类继承关系如下:
CObject CCmdTarget CWnd CDialog CCommonDialog(通用对话框) CColorDialog(颜色对话框) CFileDialog(文件对话框) CFindReplaceDialog(查找替换对话框) CPageSetupDialog(页面设置对话框) CFontDialog(字体对话框) CPrintDialog(打印对话框)
UpdateData() ;
格式:CWnd *GetDlgItem(int nID); 功能:获取指定控件或子窗口的指针。 参数:nID-控件或子窗口的ID标识符。
法3:在对话框模板中,通过设定控件属性对话框实现
5.2.2控件的数据交换和数据验证
DDV/DDX 技术

对话框和常用控件

对话框和常用控件

2、拖入一些控件,对这些控件进行排序、布局、大小调整、上下对齐、测试等。 最后在对话框 IDD_DIALOG1 上留一个按钮控件, 其标识符为: IDC_BUTTON1 3、识别控件工具栏(188 页) 4、在加对话框时, Insert Resource 点开 +Dialog 见有 7 类对话框,分别了解 其 不同用途(见 192 页)不选择其中任何一个,点黑 Dialog->new 加个对话框。 5、对话框的属性 A 、 ViewProperties B 、按 Alt+Enter C 、用 鼠 标 右 键 单 击 对 话 框 模 板 Properties 都能弹出对话框的属性框,见书 193 页对属性 General 的解释。 6、为对话框添加类(194 页) 对准对话框的任意非控件区域双击鼠标,将弹出书 194 页图 5.11 所示 的对话框,询问是否为对话框资源创建一个新类单击 OK弹出书 194 页 图 5.12 所示的对话框你定义一个新类的名字如:CMyDlg(注意:类名必 须以 C 打头) ,下面的基类 Base class 和 ID 标识符 Dialog ID 内容一般不改。 7、添映射消息(195 页) 接上,点 OK 出现“MFC ClassWizard”对话框,如书 195 页图 5.13 所示(保 证类名处是 CMyDlg) 选定点黑 IDC_BUTTON1单击 BN_CLICKED 消息Add Function 出现书 195 页图 5.14 对话框OKEdit Code 8、添加用户代码(195 页) 接上,到 MyDlg.cpp 文件中,写: void CMyDlg::OnButton1( ) {
a) 打开资源编辑器的菜单项 Menu b) 双击 IDR_MAINFRAME c) 双击右边空白菜单,点开 pop_up( 让它是空白) ,在名字处写”弹出 对话框(&A)”,ID 处写 ID_PUPDIALOG 6)将菜单命令代码连接到程序中,完成 ID_PUPDIALOG 的消息映射: View ClassWizard 保证 Class name 里是 CMainFrame , 在 ObjectIDs 里找到 ID_PUPDIALOG 点黑Messages 里(右边)点 COMMAND 建立主框架对象方法: void CMainFrame::OnPupdialog() { CMyDlg MyDlg;

《Visual C++程序设计教程》第四章对话框设计和Windows常用控件

《Visual C++程序设计教程》第四章对话框设计和Windows常用控件
第4章 对话框设计和Windows常用控件
4.1 对话框应用程序介绍


1.对话框组成 对话框主要由以下两部分组成: (1) 对话框资源:定义了对话框的特性(如大小、位 置和风格等)以及对话框中每个控件的类型、位置等 属性。一般情况下,对话框资源在资源编辑器中静 态地定义,也可以用编程的方法在程序运行时动态 地创建。 (2) 对话框类:对话框类是与对话框资源相关联的, 基于CDialog类的派生类,它提供编程接口来管理对 话框。



1.通过资源编辑器添加控件 打开对话框资源编辑器弹出如图48所示的控 件工具栏之后,就可以方便地在对话框中添加 各种控件了。 (1)单击添加:在控件工具栏上单击要添加 的控件后,将鼠标移动到对话框模板上,此时 鼠标光标变成了“+”形状,在对话框上再次单 击鼠标,控件就添加到对话框模板上了。 (2)拖动添加:拖动要添加的控件到对话框 模板上,然后释放鼠标,也可以添加控件。
(2)单击“新建”按钮可以创建一个资源类型列表中指定类 型的新资源;单击“定制”按钮可以创建资源类型列表中 没有的新类型的资源;单击“导入”按钮可以将外部已有 的位图、图标等资源添加到当前应用程序中。 (3)修改对话框属性。在对话框模板的空白处右击,从弹出 的快捷菜单中选择“属性”命令,弹出如图4-3的“对话属 性”对话框。

4.列表框控件(CListBox) 列表框是一种输入控制,它可以使用户从所列的表 项中进行选择。用户可以在其中选择一个或多个项, 这与单选按钮和复选框的功能有些相近,但不同的 是,列表框中项的数目是灵活变化的,程序运行时 可往列表框中添加或删除某些项。并且,当列表框 中项的数目较多不能一次全部显示时,还可以通过 滚动条来拓展显示范围。

对话框和Windows标准控件

对话框和Windows标准控件
对话框和Windows标准控件
对话框的组成与分类 创建对话框 模式对话框的编程 通用对话框 Windows 标准控件 资源与资源编辑器 菜单的使用 工具栏的使用 状态栏的使用
北京林业大学信息学院
对话框的组成
对话框:是Windows应用程序与用户打交 道的界面元素 。 1、对话框模板
北京林业大学信息学院
实现步骤
(3) 对视图类进行编辑,以能激活对话框,并进 行绘图。
首先要使用ResourceView中的菜单编辑器来创建菜 单项“颜色设置”。
在创建了菜单项后,可通过ClassWizard为该菜单项 映射菜单消息。
在视图中需要生成一个该类的对象。记得包含头文件 在为菜单项颜色设置映射的消息中,写如下代码
北京林业大学信息学院
模式对话框编程
【例】 简单模式对话框的编程。 本程序的功能是在客户区显示一个可
由用户指定填充颜色的矩形。当菜单项 【颜色设置】被选中时将调出【颜色】 对话框,在其中用户可以确定RGB三颜 色的值,单击【确定】按钮后即可改变 矩形的填充色。
北京林业大学信息学院
实现步骤
程序的步骤如下。 (1) 使用对话框编辑器创建对话框模板,最终完成的对话 框界面如图所示。
dlg.DoModal(); Invalidate();
北京林业大学信息学院
实现步骤
编辑视图类中的OnDraw,进行绘图
void CMyView::OnDraw(CDC* pDC) {
CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rect; GetClientRect(rect); Cbrush brush; brush.CreateSolidBrush(RGB(dlg.m_nR,dlg.m_nG,dlg.m_nB)); pDC->SelectObject(&brush); pDC->Rectangle(100,100,200,300); }

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

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

3.1对话框的使用 3. 控件布局工具栏
靠齐右边 测试对话框 左右居中 靠齐下边 高度相同 上下间隔相等 显示网格
靠齐上边 同 靠齐左边 尺 上下居中
左右间隔相等 宽度相同
大 小 相 显示标
图3.7 控件布局工具栏3Fra bibliotek1对话框的使用
WM_INITDIALOG是在对话框显示之前向父窗口发送的消息,由于建立了 此消息和OnInitDialog函数的关联,系统在对话框显示之前就会调用此函 数,因此常将对话框一些初始化代码添加到这个函数中。
3.2控件的创建和使用方法
3.2控件的创建和使用方法
(5) 在项目工作区窗口的ClassView页面中,将CEx_EditDlg结点 展开,双击OnInitDialog函数名,在该函数中添加下列代码(return true;语句之前添加):
BOOL CEx_EditDlg::OnInitDialog() { CDialog::OnInitDialog(); … CRect rcClient; this->GetClientRect( rcClient ); rcClient.right -= 100; m_wndEdit.Create(ES_MULTILINE|WS_CHILD|WS_VISIBLE|WS_TABSTO P| WS_BORDER, rcClient, this, 201 ); // 创建 CFont *font = this->GetFont(); // 获取对话框的字体 m_wndEdit.SetFont(font); // 设置控件字体 return TRUE; // return TRUE unless you set the focus to a control }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.2.3 了解对话框常用函数

CDialog类是对话框的基类,用户在程序中创 建的对话框类一般都是CDialog类的派生类。 CDialog类从CWnd类派生而来,所以它继承 了CWnd类的成员函数,用户在编写对话框 程序时除了使用CDialog类的成员函数之外, 还可以调用CWnd类的一些成员函数进行对 话框的管理。对话框常用的成员函数主要有 以下几个:
第4章 对话框设计和Windows常用控件
4.1 对话框应用程序介绍


1.对话框组成 对话框主要由以下两部分组成: (1) 对话框资源:定义了对话框的特性(如大小、位 置和风格等)以及对话框中每个控件的类型、位置等 属性。一般情况下,对话框资源在资源编辑器中静 态地定义,也可以用编程的方法在程序运行时动态 地创建。 (2) 对话框类:对话框类是与对话框资源相关联的, 基于CDialog类的派生类,它提供编程接口来管理对 话框。

4.列表框控件(CListBox) 列表框是一种输入控制,它可以使用户从所列的表 项中进行选择。用户可以在其中选择一个或多个项, 这与单选按钮和复选框的功能有些相近,但不同的 是,列表框中项的数目是灵活变化的,程序运行时 可往列表框中添加或删除某些项。并且,当列表框 中项的数目较多不能一次全部显示时,还可以通过 滚动条来拓展显示范围。




4.OnCancel 该函数在单击对话框中的“Cancel”按钮或按Esc键时由框架调用,其原型 如下: virtual void OnCancel(); 5.OnInitDialog 该重载函数用于响应WM_INTTDIALOG消息,对对话框进行初始化处理, 其原型如下: virtual BOOL OnInitDialog(); 返回值:返回非零值,输入焦点为第一个控件。若程序已显式地设置焦 点到某个控件处,则返回零。 6.OnOK 单击ID为IDOK的按钮时调用的函数,关闭对话框,并返回IDOK,其原型 如下: virtual void OnOK();




1.DoModal 该方法用于创建并显示一个模式对话框,其原型如下: virtual int DoModal(); 返回值:该方法返回一个整数值,该数值可以应用于EndDialog方法。如果返 回值为-1,则表示没有创建对话框;如果为IDABORT,则表示有其他错误发 生。 2.Create 该方法从对话框模板中创建一个对话框资源,其原型如下: BOOL Create(LPCTSTR lpszTemplateName,CWnd*pParentWnd=NULL); BOOL Create(UINT nIDTemplate,CWnd*pParentWnd=NULL); 3.EndDialog 该函数用于退出一个模式对话框,返回nResult作为DoModal的返回值,其原 型如下: void EndDialog(int nResult);

6.滚动条控件 滚动条是窗口中常见的对象,当窗口客户区中要显 示比其自身大的对象时,滚动条便非常有用了。这 种滚动条与窗口一同创建,位于窗口用户区旁的非 用户区,用来扩展用户区的显示范围,它被称为标 准滚动条。另外,还有一种作为控件的滚动条,这 是一个独立的窗口,具有直接的输入焦点,使用这 种滚动条的目的未必是滚动显示窗口内容。

对话框的属性有“常规”、“样式”、“更多样式”、 “扩展样式”和“更多扩展样式”5个部分,这里只介 绍最常用的“常规”属性,其中各个属性说明如表4-2 所示。

根据需要设置各项属性即可。
4.2.2 创建对话框类

在创建了对话框模板后,就可以利用 ClassWizard来创建从CDialog派生且连接到 对话框模板的对话框类了,并可以添加与控 件相关联的成员变量。需要注意的是,无论 在创建对话框类之前还是之后,都可以向对 话框资源添加控件,但只有在创建对话框类 之后,才可以为对话框添加与控件关联的成 员变量和消息处理有以下两种:模式(Model)对话框 和非模式(Modeless)对话框。 对于模式对话框,在对话框关闭之前,用户无法在 同一应用程序的其他地方进行工作,如Microsoft Word中的“打开文件”对话框。而对于非模式对话 框,在它仍然保留在屏幕上的同时,用户可以在同 一应用程序的其他窗口中进行工作,如Microsoft Word 中的“查找与替换”对话框,在对话框保留在 屏幕的同时,还可以进行光标的重定位及其他操作。
4.4 对控件进行排版

在实际编程中,有时会根据需要在对话框中 加入多个控件,这时就需要对控件进行适当 的排版以使对话框更加美观。控件布局可以 利用如图4-11所示的布局菜单,或者利用如 图4-12所示的控件布局工具栏来实现。要注 意的是,布局菜单和布局工具栏只有在对对 话框资源进行编辑时才有效,对其他资源进 行编辑时无效。
4.2.1 建立对话框程序框架


在MFC应用程序中添加对话框资源,通常按 下列步骤进行: (1)利用MFC AppWizard向导生成单文档 (SDI)应用程序DialogTest。选择“插 入”→“资源”命令,或使用Ctrl+R组合键 打开“插入资源”对话框。展开资源列表中 的“Dialog”项,如图4-1所示,“资源类型” 列表中列出了各种类型的对话框资源。

1.静态文本控件(CStatic) 静态文本控件用来在屏幕上显示字符串,一般不响 应消息,在运行过程中不和用户发生任何关系。当 把矩形范围定位好之后,就可以直接输入文本。该 控件的一个常用属性是标题(Caption)属性,用来 设置在控件中显示的文本。在很多情况下,对话框 中的一些说明性质的文字均可以用静态文本进行输 出。管理静态文本控件的MFC类是CStatic类。


5.组合框控件 组合框是列表框和编辑框的组合。在组合框中,用 户除了可以在列表中对已经存在的选项进行选择外, 还可以输入新的选项。 Windows提供了3种类型的组合框:简单组合框 (Simple)、下拉式组合框(Dropdown)和下拉式 列表框(Drop List)。简单组合框和下拉式组合框都 含有列表框和编辑框控件,只不过简单组合框的列 表框不是下拉式的,跟正常的列表框一样。下拉式 列表框则虽然有下拉式的列表,但却没有文字编辑 功能。
4.2 创建对话框程序





在Visual C++ 6.0中创建对话框应用程序一般分为4 个步骤: (1)利用资源编辑器创建一个对话框模板,加入需 要的控件并设置对话框和控件的属性。 (2)利用ClassWizard创建与对话框资源对应的 CDialog的派生类。 (3)编写创建对话框的代码,通常在响应某个菜单 项或者工具栏按钮时弹出对话框。 (4)为对话框的控件添加响应的消息处理。
4.3.2 添加Windows控件

控件的创建方法有两种,一种是在对话 框中指定控件,即将控件的父窗口指定 为对话框,当程序启动该对话框时, Windows系统自动为对话框创建控件, 当关闭对话框时,Windows所创建的控 件也随之被撤销。另一种是将控件看作 是任意窗口的子窗口,通过调用相应的 创建函数来实现。

3.制表站属性 该属性控制利用键盘Tab键获取对话框窗口的 操作焦点,获得焦点的控件能够响应当前的 键盘输入。控件获得焦点后,按Enter键就执 行控件所对应的命令。任何对话框中都只能 由一个控件拥有焦点。

4.组属性 组属性用来对一组控件进行编组,用户可以用键盘 方向键在该组控件内切换焦点。组属性常用于单选 按钮和复选框,在同一组内的单选按钮具有互斥的 特性,即在这些单选按钮中只能有一个是选中的。 如果一个控件具有Group属性,则这个控件以及按 Tab顺序紧随其后的所有控件都属于一组,直到遇 到另一个有Group属性的控件为止。
4.3 使用Windows常用控件

为了与用户进行直观、方便、快捷的交 互,Windows操作系统提供了各种控件。 控件(Control)是一种子窗口,应用程序 用它来与其他窗口进行简单的交互。一 般情况下,在使用对话框的时候都需要 加上对话框控件,如编辑框、组合框、 按钮和单选按钮等。
4.3.1 Windows常用控件介绍

2.标题属性 静态文本、组框、命令按钮以及单选按钮等控 件都可以显示标题,用来对控件进行文字说明。 控件标题中的字符“&”使紧跟其后的字符附带 下划线,按Alt+下划线上的字符将启动该控件。 若控件是一个单选按钮,则按Alt+下划线上的 字符将选择该按钮;若控件是命令按钮,则将 激活按钮命令;若控件是一个静态文本,则将 激活紧随其后的下一个控件。
(2)单击“新建”按钮可以创建一个资源类型列表中指定类 型的新资源;单击“定制”按钮可以创建资源类型列表中 没有的新类型的资源;单击“导入”按钮可以将外部已有 的位图、图标等资源添加到当前应用程序中。 (3)修改对话框属性。在对话框模板的空白处右击,从弹出 的快捷菜单中选择“属性”命令,弹出如图4-3的“对话属 性”对话框。



1.通过资源编辑器添加控件 打开对话框资源编辑器弹出如图48所示的控 件工具栏之后,就可以方便地在对话框中添加 各种控件了。 (1)单击添加:在控件工具栏上单击要添加 的控件后,将鼠标移动到对话框模板上,此时 鼠标光标变成了“+”形状,在对话框上再次单 击鼠标,控件就添加到对话框模板上了。 (2)拖动添加:拖动要添加的控件到对话框 模板上,然后释放鼠标,也可以添加控件。
4.4.1 设置Windows控件的大小

如果要设置控件的大小,可以利用控件周围 的尺寸调整点实现,如图4-13所示,可看到 控件周围有8个调整点。特别地,对于静态 文本控件,当输入标题内容时,控件的大小 会自动改变。调整控件大小的具体方法如下:



(1)单击要调整的控件并将其选中,此时控 件四周显示出尺寸调整点。 (2)把鼠标光标放在调整点上,当鼠标变为 双向箭头时,水平或垂直拖动鼠标以改变控 件的宽度或者高度。如果希望能等比例地改 变控件的宽度和高度,可以把鼠标光标放在 右下脚的调整点位置进行拖动。 (3)调整为满意大小时停止拖动即可。
相关文档
最新文档