VC++MFC 对话框和常用控件
VC++6.0MFC常用控件-推荐下载
一般控件可用/不可用EnableWindow(TRUE);EnableWindow(FALSE);1、Static Text------------静态控件--类CStatic取值/赋值(变量类型为Control)m_lbl.GetWindowText(string);m_lbl.SetWindowText(string);2、Edit Box---------------编辑控件--类CEdit取值/赋值m_txt.GetWindowText(string);m_txt.SetWindowText(string);3、Check Box------------复选控件--类CButton(1)设置选中/未选中m_chk.SetCheck(BST_CHECKED);m_chk.SetCheck(BST_UNCHECKED);(2)判断是否选中int nCur = m_chk.GetCheck();nCur取值为BST_CHECKED/BST_UNCHECKED。
4、Radio Box------------单选控件--类CButton(1)默认选中第一项m_radio.SetCheck(BST_CHECKED);(2)选中组中任一项CWnd::CheckRadioButtonSelects (adds a check mark to) a given radio button in a group and clears (removes a check mark from) all other radio buttons in the group.void CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton); ParametersnIDFirstButtonSpecifies the integer identifier of the first radio button in the group.nIDLastButtonSpecifies the integer identifier of the last radio button in the group.nIDCheckButtonSpecifies the integer identifier of the radio button to be checked.(3)判断哪一项被选中CWnd::GetCheckedRadioButtonRetrieves the ID of the currently checked radio button in the specified group.int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);ParametersnIDFirstButtonSpecifies the integer identifier of the first radio button in the group.nIDLastButtonSpecifies the integer identifier of the last radio button in the group.Return ValueID of the checked radio button, or 0 if none is selected.(4)控件变量类型为Value时,可通过给int型变量赋值0、1、2...选中第1、2、3...个选项。
第四章对话框和常用控件
2.1 对话框和控件概述
对话框是一种用户界面,它为用户提供了一种标准的处理数据的 方法。 从本质来说,对话框实际上是一个窗口,在MFC层次结构中, 对话框实际上是封装在Cdialog中,Cdialog类是CWnd类的派生类, 它是所有对话框的基类 对话框由两部分组成:对话框资源和对话框类。 控件是在系统内部定义的用于和用户交互的基本单元。
2.8.3 列表框
1. 列表框的风格和消息 按性质来分,列表框有单选、多选、扩展多选以及非选四种类型
图 不同类型的列表框
2.8.3 列表框
当列表框中发生了某个动作,如用户双击选择了列表框中某一项 时,列表框就会向其父窗口发送一条通知消息。
表 列表框的通知消息
2.8.3列表框
列表框的项除了用字符串来标识外,还常常通过索引来确定。索 引表明项目在列表框中排列的位置,它是以0为基数的,即列表框中 第一项的索引是0,第二项的索引是1 (1) 添加列表项
2.2 对话框的常用操作
1.创建对话框资源 在Visual C++中,用户通过工作区窗口可以方便的创建对话框资 源。主要有两种方式:(1)利用工作区的“Resource View”选项卡创 建对话框资源;(2)通过工作区的“ClassView”选项卡创建对话框 资源。
默认对话框 模板 默认对话框 资源ID号
2.8 工具箱中的常用控件
为了方便开发人员进行界面布局,Visual C++开发环境提供了一 个控制面板窗口,其中包含了各种常用的控件。
控件的选择 静态文本 组框 复选框 组合框 水平滚动条 旋转按钮 滑动条 列表视图 标签 复合编辑 月历 静态图片 编辑框 按钮 单选框 列表框 垂直滚动条 进展条 热键 树形视图 动画 日期选择 IP地址
VC++MFC 常用控件使用方法
VC++MFC 常用控件使用方法4.1 Button按钮窗口(控件)在MFC中使用CButton表示,CButton包含了三种样式的按钮,Push Button,Check Box,Radio Box。
所以在利用CButton对象生成按钮窗口时需要指明按钮的风格。
创建按钮:BOOL CButton::Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );其中lpszCaption是按钮上显示的文字,dwStyle为按钮风格,除了Windows风格可以使用外(如WS_CHILD|WS_VISUBLE|WS_BORDER)还有按钮专用的一些风格。
BS_AUTOCHECKBOX 检查框,按钮的状态会自动改变 Same as a check box, except thata check mark appears in the check box when the user selects the box; the checkmark disappears the next time the user selects the box.BS_AUTORADIOBUTTON 圆形选择按钮,按钮的状态会自动改变 Same as a radio button, except that when the user selects it, the button automatically highlights itself andremoves the selection from any other radio buttons with the same style in the same group.BS_AUTO3STATE 允许按钮有三种状态即:选中,未选中,未定 Same as a three-state check box, except that the box changes its state when the user selects it.BS_CHECKBOX 检查框 Creates a small square that has text displayed to its right (unless this style is combined with the BS_LEFTTEXT style).BS_DEFPUSHBUTTON 默认普通按钮 Creates a button that has a heavy black border.The user can select this button by pressing the ENTER key. This style enables theuser to quickly select the most likely option (the default option).BS_LEFTTEXT 左对齐文字 When combined with a radio-button or check-box style, the text appears on the left side of the radio button or check box.BS_OWNERDRAW 自绘按钮 Creates an owner-drawn button. The framework calls the DrawItem member function when a visual aspect of the button has changed. Thisstyle must be set when using the CBitmapButton class.BS_PUSHBUTTON 普通按钮 Creates a pushbutton that posts a WM_COMMAND message to the owner window when the user selects the button.BS_RADIOBUTTON 圆形选择按钮 Creates a small circle that has text displayed to its right (unless this style is combined with the BS_LEFTTEXT style). Radio buttons are usually used in groups of related but mutually exclusive choices.BS_3STATE 允许按钮有三种状态即:选中,未选中,未定 Same as a check box, except that the box can be dimmed as well as checked. The dimmed state typically is used toshow that a check box has been disabled.rect为窗口所占据的矩形区域,pParentWnd为父窗口指针,nID为该窗口的ID值。
vc中的对话框和控件
10.2.1 生成基于对话框的MFC应用程序框架
(1)启动MFC AppWizard (2) MFC AppWizard-Step 1对话框:选择应用 程序的类型和语言。 (3) MFC AppWizard-Step 2 of 4对话框:询 问了三个问题并要求输入一个标题。 (4) MFC AppWizard-Step 3 of 4对话框:询 问了三个问题。 (5) MFC AppWizard-Step 4 of 4对话框:显 示AppWizard为应用程序生成的派生类的一些情况。 (6) 编译运行。
第10章 对话框和控件
10.1 10.2 10.3 10.4 习题 对话框和控件的基本概念 使用AppWizard开发MFC应用程序 基本控件 通用对话框
10.1 对话框和控件的基本概念
10.1.1 对话框的基本概念 10.1.2 控件的基本概念
10.1.1 对话框的基本概念
在MFC中,对话框的功能被封装在了CDialog类中, CDialog类是CWnd类的派生类。 有模式对话框垄断了用户的输入,当一个有模式对 话框打开时,用户只能与该对话框进行交互,而其 它用户界面对象收不到输入信息。 无模式对话框类似普通的Windows窗口,在无模式 对话框打开时,用户可以同时打开其它窗口对象, 操作完毕后,又可用鼠标或其它方式激活该窗口。
6vc对话框与控件
前一页
休息
6 对话框与控件
信息技术学院
技术要点总结:
对话框控件和相关MFC类(P155,表6-2) 用于对话框控件的CWnd成员函数(P155,表6-3) 对话框编辑器
控件工具箱:”右击工具栏/control” “Tools/Customize…/ToolsBars/Control” 修改控件的Tab键次序:”编排(Layout)/Tab Order”;或 Ctrl+D按新的次序依此用鼠标单击各个控件,新的Tab键 次序即可生成. 控件布局工具栏:P159,图6-5,设置Layout/Guide Setings 测试对话框:Ctrl+T
为MyHello程序添加”口令”对话框
11
前一页
休息
6 对话框与控件
信息技术学院
预备知识
对话框是实现人机交互的重要手段,对话框不但 可以接收消息,而且可以被移动和关闭.
1.对话框类型
无模式对话框 模式对话框
允许用户在该对话框 与应用程序其他窗口 之间的切换
不允许用户在关闭对话 框之前切换到应用程序 的其他窗口
编辑对话框属性 向对话框内添加控件 ——添加/选取/控件的布局/测试对话框 使用ClassWizard,为对话框资源创建一个新类CMyDlg,为控件 进行消息映射
afx_msg void OnButton1(); //向导完成 ON_BN_CLICKED(IDC_BUTTON1, OnButton1) //向导完成
name:m_Password Category: Value Variable type:CString
Variable
创建: DDX_Text(pDX, IDC_PASSWORD_EDIT, m_password)
MFC控件与对话框
29
命令按钮( 命令按钮(PushButton) )
响应用户的输入, 响应用户的输入,触发相应的事件
CButton
复选(检查) 复选(检查)框 (CheckBox) )
用做选择标记,可以有选中、 用做选择标记,可以有选中、不选中和不确定三 CButton 种状态
2
常用控件
单选按钮( 单选按钮(RadioButton) ) 用来从两个或多个选项中选定其中一项 CButton (分)组框(GroupBox) 组框( ) 显示正文和方框, 显示正文和方框,主要用来将相关的一些控件聚成一 组 CButton
8
先创建对话框
在项目的资源视图中 选择Dialog 选择Dialog 项后,右 键单击选择插入 Dialog资源。 Dialog资源。 设置该对话框的 ID属性为: ID属性为: IDD_EX_DLGCTRLS_DI ALOG
9
添加对话框
10
运行效果
对话框在哪里?
11
(1)创建对话框类
在对话框资 源模板的空 白区域内双 击鼠标,或 右键添加类, 为对话框资 源创建一个 新类。
24
运ห้องสมุดไป่ตู้效果
25
添加编辑框
通过工具箱添加一个编辑框, 默认ID为:IDC_EDIT1,右 键为该编辑框添加关联变量。
26
单击计算按钮给编辑框关联的整型变量m_val1赋值 单击计算按钮给编辑框关联的整型变量m_val1赋值 ,并在编辑框中显示出来:
void CEx_DlgCtrls_DLG::OnBnClickedCalButton() CEx_DlgCtrls_DLG::OnBnClickedCalButton() { // TODO: 在此添加控件通知处理程序代码 //MessageBox(L"你按下了“计算”按钮!"); //MessageBox(L"你按下了“计算”按钮!"); UpdateData(); UpdateData(); 变量m_val1自动关联着编辑框,但编辑 自动关联着编辑框, 变量 自动关联着编辑框 m_val1=15; 框的内容要实时变化, 框的内容要实时变化,需要及时更新其 UpdateData(FALSE); UpdateData(FALSE); 数据内容。 数据内容。 }
实验八 MFC中的对话框及控件(二)
实验八MFC中的对话框及控件(二)实验目的掌握常用的控件使用方法以及基于对话框的应用程序的开发实验内容1、编辑框的使用2、选择按钮的使用3、下拉列表的使用4、按钮的使用5、基于对话框的应用程序开发一、编辑框的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加2个静态文本控件和2个编辑框控件。
注意这2个编辑框控件的ID5、通过Classwizzard添加数据成员。
在Classwizzard弹出的对话框中选择新建你这个对话框的类,取名叫“Cmydlg”,当然你也可以取其他名字选择成员变量选项卡,然后双击某个编辑框的ID,设置对应数据成员名字及类型。
6、在你的工程的view类的头部通过包含对话框类的头文件#include “mydlg.h”包含你所建的对话框类。
注意:如果你改了对话框类的名字,看看相应的项目里新增的那个类的头文件名7、在View类中增加2个变量CString myname;int myage;8、通过Classwizzard增加一个鼠标左键消息响应函数,并在函数中增加如下代码:void CT estView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCmydlg dlg;if(dlg.DoModal()==IDOK){myname=dlg.m_name;myage=dlg.m_age;Inavalidate();}CView::OnLButtonDown(nFlags, point);}9、在OnDraw函数里增加如下显示内容的代码CString str;str.Format("我的姓名是%s",myname);pDC->TextOut(10,10,str);str.Format("我的年龄是%d",myage);pDC->TextOut(10,30,str);10、编译运行程序,在工作视图区点鼠标左键二、选择按钮的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加3个单选框控件。
MFC对话框和控件(二)课件
TVITEM itemOld; // 原节点的属性 TVITEM itemNew; // 新节点的属性 POINT ptDrag; // 事件发生时鼠标的客户区坐 标 } NMTREEVIEW, *LPNMTREEVIEW;
树形控件(Tree Contorl):
对话框置顶(SetWindowPos):
基于对话框应用程序时: 设置置顶: SetWindowPos(&wndTopMost,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE); SetWindowPos(&wndTopMost,300,300,500,500, SWP_NOMOVE | SWP_SHOWWINDOW); 取消置顶: SetWindowPos(&wndNoTopMost,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE); SetWindowPos(&wndNoTopMost,300,300,300,350, SWP_NOMOVE | SWP_SHOWWINDOW); 基于单文档应用程序时: 设置置顶: SetWindowPos( Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE||SWP_NOSIZE); 取消置顶: SetWindowPos( Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE||SWP_NOSIZE);
树形控件(Tree Contorl):
树控பைடு நூலகம்的创建:
BOOL Create( DWORD dwStyle, // 设定列表视图控件的风格 const RECT& rect, // 列表视图控件的位置和尺寸 CWnd* pParentWnd, // 指向父窗口的指针 UINT nID // 列表视图控件的ID );
MFC对话框和常用控件_
5.2控件的创建和使用方法
5.2.1控件的创建方法 控件的创建方式有以下两种: 一种是在对话框模板中用编辑器指定控件,也就是说,将控件的父窗口指 定为对话框,这样做的好处是明显的,因为当应用程序启动该对话框时, Windows系统就会为对话框创建控件;而当对话框消失时,控件也随之清 除。 另一种方式是将控件看作是任一窗口的子窗口,并通过调用相应的Create 函数来创建。 [例Ex_SDIHello] 在上例Ex_SDIHello的基础上用子窗口方式创建控件。 (1)打开CMyDlg的头文件MyDlg.h,添加一个按钮类CButton指针变量: class CMyDlg : public CDialog { // Construction public: CMyDlg(CWnd* pParent = NULL); // standard constructor CButton *m_btnWnd;//动态创建 … }
5.1对话框的使用
5.1.2使用对话框编辑器
打开对话框编辑器
将项目工作区窗口切换到ResourceView页面,双击Dialog目录下任意一 个对话框ID。或者,选择“Insert”“Resource”菜单命令(或按快捷键 Ctrl+R),选择Dialog项,单击New。
默认对话框 模板 默认对话框 资源ID号
标尺
控件工具栏
基准线
布局工具栏
图5.1 打开的对话框编辑器
5.1对话框的使用
在对话框中添加和编辑控件 (1)控件添加的方法
在对话框中添加一个控件的方法有下列几种: 在控件工具栏中单击某控件,鼠标箭头在对话框内变成“十”字形状;在对话框指 定位置单击鼠标左键,再拖动选择框可改变控件的大小和位置。 在控件工具栏中单击某控件,鼠标箭头对话框内变成“十”字形状;在指定位置处 单击鼠标左键不放,拖动鼠标至满意位置,释放鼠标键。 用鼠标左键点中控件工具栏中的某控件,并按住鼠标键不放;在移动鼠标到对话框 的指定位置的过程中,会看到一个虚线框,下面带有该控件的标记;释放鼠标键。
VC++ MFC对话框和常用教程
第五章对话框和常用控件对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段,在程序运行过程中,对话框可用于扑捉用户的输入信息或数据。
对话框是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在对话框中实施,一般来说,在对话框中通过各种控件(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。
控件是在系统内部定义的用于和用户交互的基本单元。
一、对话框的使用Visual C++提供的对话框编辑器能“可视”地进行设计、编辑,并可用ClassWizard为对话框从CDialog基类中派生一个类,MFC的CDialog类封装了用于对话框的显示、关闭等操作的许多功能函数,例如:DoModal函数用来显示模式对话框并返回用户操作的结果。
1、模式对话框(为186附加举例页)所谓模式对话框是指,当对话被弹出时,用户必须在对话框中进行相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。
平常我们所见到的对话框大多是模式对话框。
例:模式对话框(通过菜单命令弹出)1)建一个单文档(SDI)应用程序2)创建对话框模板Insert→Resource→选中Dialog→单击New拖过一个静态文本,鼠标对准它,按右键点properties改标题为“新建模式对话框”。
3)鼠标右键对准对话框的任何位置单击,选择properties选项,设置ID为IDD_MYDIALOG 4)给对话框创建类双击新建对话框的任何位置,单击OK,写类名为“CMyDlg”,保证”CDialog”作为该类的基类。
5)创建菜单命令:a)打开资源编辑器的菜单项Menub)双击IDR_MAINFRAMEc)双击右边空白菜单,点开pop_up(让它是空白),在名字处写”弹出对话框(&A)”,ID 处写ID_PUPDIALOG6)将菜单命令连接到主框架程序中,完成ID_PUPDIALOG的消息映射:View→ClassWizard→保证Class name里是CMainFrame,在ObjectIDs里找到ID_PUPDIALOG点黑→Messages里(右边)点COMMAND建立主框架对象方法并加代码:void CMainFrame::OnPupdialog(){ CMyDlg MyDlg;MyDlg.DoModal(); //DoModal()是CDialog类成员函数,通过调用该//函数将显示对话框。
VC++6.0MFC常用控件
VC++6.0MFC常用控件一般控件可用/不可用EnableWindow(TRUE);EnableWindow(FALSE);1、Static Text------------静态控件--类CStatic取值/赋值(变量类型为Control)m_lbl.GetWindowT ext(string);m_lbl.SetWindowT ext(string);2、Edit Box---------------编辑控件--类CEdit取值/赋值m_txt.GetWindowT ext(string);m_txt.SetWindowT ext(string);3、Check Box------------复选控件--类CButton(1)设置选中/未选中m_chk.SetCheck(BST_CHECKED);m_chk.SetCheck(BST_UNCHECKED);(2)判断是否选中intnCur = m_chk.GetCheck();nCur取值为BST_CHECKED/BST_UNCHECKED。
4、Radio Box------------单选控件--类CButton(1)默认选中第一项m_radio.SetCheck(BST_CHECKED);(2)选中组中任一项CWnd::CheckRadioButtonSelects (adds a check mark to) a given radio button in a group and clears (removes a check mark from) all other radio buttons in the group.void CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton); ParametersnIDFirstButtonSpecifies the integer identifier of the first radio button in the group.nIDLastButtonSpecifies the integer identifier of the last radio button in the group.nIDCheckButtonSpecifies the integer identifier of the radio button to be checked.(3)判断哪一项被选中CWnd::GetCheckedRadioButtonRetrieves the ID of the currently checked radio button in the specified group.int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);ParametersnIDFirstButtonSpecifies the integer identifier of the first radio button in the group.nIDLastButtonSpecifies the integer identifier of the last radio button in the group.Return ValueID of the checked radio button, or 0 if none is selected.(4)控件变量类型为Value时,可通过给int型变量赋值0、1、2...选中第1、2、3...个选项。
轻松学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系统中文件 夹目录也是以列表视图呈现。
VC++对话框和常用控件
3、实现消息映射,添加代码 选择类名CMainFrame(管理菜单),选择ID: ID_PUPDIALOG,在Message中选择COMMAND,通过ADD FUNCTION 建立菜单项“弹出对话框”的消息映射。
在函数中添加如下代码:
在MainFrm.cpp文件中添加如下代码:#include “MyDlg.h” 4、编译运行,单击build/Execute *.exe。结果如下
Visual C++程序设计
12
添加对话框资源
对展开的不同类型的对话框资源不作任何选择,选 中“Dialog”,单击[新建]按钮,系统就会自动为当 前应用程序添加了一个对话框资源,并出现如下图 所示的界面。
添加对话框资源后的开发环境
Visual C++程序设计
控件工具栏
默认标识符
对话框模板
布局工具栏 14
一旦对话框资源被打开或被创建,就会出现对话框 编辑器,通过它可以在对话框中进行控件的添加和 布局等操作。
控件的添加。
对话框编辑器最初打开时,控件工具栏是随之出现 的,利用此工具栏中的各个按钮可以顺利完成控件 的添加。下图说明了各个按钮所对应的控件类型。
Visual C++程序设计
控件的选择 静态文本 组框 复选框 组合框 水平滚动条 旋转按钮 滑动条 列表视图 标签 复合编辑 月历
用户定制控件
静态图片 编辑框 按钮 单选框 列表框 垂直滚动条 进展条 热键 树形视图 动画 日期选择 IP地址 扩展组合框 16
创建对话框类
MFC提供了一系列对话框类,并实现了对话框消息响 应和处理机制。CDialog类是对话框类中最重要的类, 我们在程序中创建的对话框类一般都是CDialog类的派 生类。CDialog类还是其它所有对话框类的基类,其派 生关系如下所示: CObject CCmdTarget CWnd CDialog
C++ MFC控件使用详解
1。
mfc单文档结构2。
添加左击鼠标,按下键盘事件3。
消息:窗口消息,控件的通知消息,命令消息第5章对话框和常用控件5.1 对话框的使用5.2 控件的创建和使用方法5.4 通用对话框和消息对话框5.1对话框的使用5.1.1模式和无模式对话框模式对话框指当对话框被弹出,用户必须在对话框中作出相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。
无模式对话框指当对话框被弹出后,一直保留在屏幕上,可继续在对话框所在的应用程序中进行其它操作;需要使用对话框时,单击对话框所在的区域即可激活。
在创建和退出对话框窗口时的方式不同:创建时,模式对话框由系统自动分配内存空间,对话框退出时,对话框对象自动删除。
无模式对话框需要来指定内存,退出时还需删除对话框对象。
退出时,两种对话框所使用的终止函数不一样。
模式对话框通过调用CDialog:: EndDialog来终止,无模式对话框则是调用CWnd::DestroyWindow来终止。
函数CDiaolog::OnOK和CDiaolog::OnCancel是调用EndDialog的,因此无模式对话框必须用DestroyWindow来重载OnOK 和OnCancel两个函数。
需要正确删除表示对话框的对象。
对模式对话框,在创建函数返回后即可删除对象。
无模式对话框不是同步的,在创建函数调用后立即返回,因而不知道何时删除对象,但可以通过重载CWnd::PostNcDestroy函数并执行清除操作。
5.1.2使用对话框编辑器打开对话框编辑器将项目工作区窗口切换到ResourceView页面,双击Dialog目录下任意一个对话框ID。
或者,选择“Insert” “Resource”菜单命令(或按快捷键Ctrl+R),选择Dialog项,单击New。
在对话框中添加和编辑控件(1)控件添加的方法在对话框中添加一个控件的方法有下列几种:在控件工具栏中单击某控件,鼠标箭头在对话框内变成“十”字形状;在对话框指定位置单击鼠标左键,再拖动选择框可改变控件的大小和位置。
《Visual C++程序设计教程》第四章对话框设计和Windows常用控件
4.1 对话框应用程序介绍
1.对话框组成 对话框主要由以下两部分组成: (1) 对话框资源:定义了对话框的特性(如大小、位 置和风格等)以及对话框中每个控件的类型、位置等 属性。一般情况下,对话框资源在资源编辑器中静 态地定义,也可以用编程的方法在程序运行时动态 地创建。 (2) 对话框类:对话框类是与对话框资源相关联的, 基于CDialog类的派生类,它提供编程接口来管理对 话框。
1.通过资源编辑器添加控件 打开对话框资源编辑器弹出如图48所示的控 件工具栏之后,就可以方便地在对话框中添加 各种控件了。 (1)单击添加:在控件工具栏上单击要添加 的控件后,将鼠标移动到对话框模板上,此时 鼠标光标变成了“+”形状,在对话框上再次单 击鼠标,控件就添加到对话框模板上了。 (2)拖动添加:拖动要添加的控件到对话框 模板上,然后释放鼠标,也可以添加控件。
(2)单击“新建”按钮可以创建一个资源类型列表中指定类 型的新资源;单击“定制”按钮可以创建资源类型列表中 没有的新类型的资源;单击“导入”按钮可以将外部已有 的位图、图标等资源添加到当前应用程序中。 (3)修改对话框属性。在对话框模板的空白处右击,从弹出 的快捷菜单中选择“属性”命令,弹出如图4-3的“对话属 性”对话框。
4.列表框控件(CListBox) 列表框是一种输入控制,它可以使用户从所列的表 项中进行选择。用户可以在其中选择一个或多个项, 这与单选按钮和复选框的功能有些相近,但不同的 是,列表框中项的数目是灵活变化的,程序运行时 可往列表框中添加或删除某些项。并且,当列表框 中项的数目较多不能一次全部显示时,还可以通过 滚动条来拓展显示范围。
实验八 MFC中的对话框及控件(二)
实验八MFC中的对话框及控件(二)实验目的掌握常用的控件使用方法以及基于对话框的应用程序的开发实验内容1、编辑框的使用2、选择按钮的使用3、下拉列表的使用4、按钮的使用5、基于对话框的应用程序开发一、编辑框的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加2个静态文本控件和2个编辑框控件。
注意这2个编辑框控件的ID5、通过Classwizzard添加数据成员。
在Classwizzard弹出的对话框中选择新建你这个对话框的类,取名叫“Cmydlg”,当然你也可以取其他名字选择成员变量选项卡,然后双击某个编辑框的ID,设置对应数据成员名字及类型。
6、在你的工程的view类的头部通过包含对话框类的头文件#include “mydlg.h”包含你所建的对话框类。
注意:如果你改了对话框类的名字,看看相应的项目里新增的那个类的头文件名7、在View类中增加2个变量CString myname;int myage;8、通过Classwizzard增加一个鼠标左键消息响应函数,并在函数中增加如下代码:void CT estView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCmydlg dlg;if(dlg.DoModal()==IDOK){myname=dlg.m_name;myage=dlg.m_age;Inavalidate();}CView::OnLButtonDown(nFlags, point);}9、在OnDraw函数里增加如下显示内容的代码CString str;str.Format("我的姓名是%s",myname);pDC->TextOut(10,10,str);str.Format("我的年龄是%d",myage);pDC->TextOut(10,30,str);10、编译运行程序,在工作视图区点鼠标左键二、选择按钮的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加3个单选框控件。
第4章 C++对话框和常用控件—武汉科技大学研究生
4.1.7 在程序中调用对话框
(2) 单击菜单属性对话框中的“保存可见”(Keep Visible)按钮。单击 “测试”菜单项下方的空位置,在属性对话框中,输入标题“对话框 (&D)”,在ID框输入该菜单项的资源标识:ID_TEST_DLG,如图所 示。 (3) 单击“测试”菜单项并按住鼠标左键不放,移动鼠标,将“测试” 菜单项移到“查看”和“帮助”菜单项之间,然后释放鼠标。
创建并使用无模式对话框,其步骤如下: ① 添加一个对话框,将其标识符设为IDD_DIALOG_SECOND。 ② 为IDD_DIALOG_SECOND对话框资源创建一个对话框类 CSecondDlg。 ③ MFC ClassWizard,从“Class name”列表中选择 CSecondDlg,在IDs列表中选择IDOK,它是对话框中[OK]按 钮的标识符,然后在Messages框中选择BN_CLICKED(单击按 钮)消息,单击[Add Function]按钮,输入成员函数的名称,保 留系统默认的函数名为OnOK。该函数是对[OK]按钮单击消息 的映射,即当用户单击此对话框中的[OK]按钮时,OnOK函数 被执行。 ④ 修改CSecondDlg::OnOK函数中的代码。