windows程序设计第十讲对话框

合集下载

对话框及常用控件

对话框及常用控件

2
对话框程序的创建
2.1 一个对话框程序 2.2 创建对话框资源模板 2.3 利用对话框类CDialog操纵对话框 2.4 初始化对话框 2.5 对话框的调用 2.6 对话框的消息处理
2.1
一个对话框程序
1.程序功能 该应用程序具有认证的功能:当该程序运行时,首先弹 出一个“密码验证” 对话框,让用户输入其用户名和密 码。用户需要输入用户名“good”和用户密码“ good ” 后才能进入主界面,若有一个输入错误,都不能进入。 2.程序类型
1.3 对话框的组成(续)
对话框类 从CDialog类派生的对话框类提供编程接口来 管理与对话框模板相关联的对话框。 CDialog 类的 许多成员函数与对话框编程密切相关,可供程序员 调用。由于对话框是一种窗口,因此相应的对话框 类必须与一个Windows窗口相联系,而对话框资源 模板就是用于创建这个 Windows窗口及其包含在其 中的控件。 对话框类可以看作对话框应用程序的一种程序 员接口,用户对应用程序操作,后台调用的都是该 类的成员函数来完成的。
可见在对话框的构造函数中主要是对对话框的数据成员变量 进行初始化。
2.4
初始化对话框(续)
2.在WM_CREATE的消息映射函数中初始化 由于对话框也是窗口,它在窗口创建时会收到 WM_CREATE 消息,该消息的响应函数是 OnCreate()。 这样,就能在窗口创建中做一些初始化工作。尽管用户 可能在 WM_CREATE 消息处理函数中进行一些数据成员 的初始化工作,但更通常的做法是在对话框中的所有控 件都建立起来之后,响应消息 WM_INITDIALOG 时,对 数据成员进行初始化。 3.在WM_INITDIALOG的消息映射函数中初始化 在对话框创建时,会收到 WM_INITDIALOG 消息,该 消息的响应函数是OnInitDialog()。在得到了

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是对话框所属的父窗口。

第十讲.文件及文件夹的操作

第十讲.文件及文件夹的操作

第三讲:文件及文件夹的管理一、文件及文件夹文件:又称文档,它是以文件名为标识的一组相关信息的集合。

文件夹:用来存放文件的地方1、文件及文件夹的命名:文件的名=文件主名+扩展名中间用“.”隔开(1)文件及文件夹名最多可为255个字符。

(2)可使用多间隔符。

(3)可用空格作为组成名称的一部分,但不可以使用(? / \ * “:< > |)(4)相同的目录下,不允许相同的文件名或目录名。

(5)不支持通配符“*”号和“?”(其中“*”可表示合法255个字符,“?”表示一个合法的字符)主要是用于查找文件。

2、文件系统的路径:(1)路径:是由目录名描述的一条查找文件的途径。

由一系列子目录构成,中间用“\”间隔(2)根目录:最高一级的目录,用“:\”表示,不可删除,是对磁盘格式化的时由DOS自动产生的。

(3)子目录:除根目录外,其他的目录都称为子目录。

是用户自行建立的。

(4)父目录:相对某个子目录,它的上一级目录称为父目录,它的下一级称为它的子目录。

(5)当前目录:就是当前正在编辑的目录。

注:目录的命名规则同文件的命名规则3、文件及文件夹的创建:(1)单击“文件”—“新建”(2)在空白处单击鼠标右键弹出快捷式菜单选择—“新建”4、文件及文件夹的重命名:(1)选择“文件”—“重命名”快捷键:F2(2)单击鼠标右键选择—“重命名”5、文件或文件夹选定:(1)选定单个文件或文件夹(单击)(2)选定相邻的多个文件或文件夹:首先选定第一个文件夹或文件,再按Shift键不放,单击最后一个文件或文件夹。

(3)选定不相邻的多个文件或文件夹::按Ctrl不放,单击相应文件或文件夹(4)选定所有的文件或文件夹:单击“编辑”→“全选”或Ctrl+A。

6、移动或复制文件:首先:选定所需复制或移动的(文件或文件夹)复制文件:(1)单击“编辑”—“复制”(2)单击工具栏上的复制按扭(3)C trl+C(4)按Ctrl键的同时拖动选定的文件等(5)直接用鼠标拖动到(不同的磁盘)移动文件:(1)单击“编辑”\“剪切”(2)单击工具栏上“剪切”按扭(3)C trl+X(4)直接用鼠标拖动(同一盘符)注:什么是剪贴板:Windows的剪贴板是用来剪切、复制信息的内存中的一块临时存储区。

c#Windows窗体应用程序设计

c#Windows窗体应用程序设计
现的 “添加新项”对话框中,选中“Windows窗体”,输入相应的名称(这里为 Form2.cs),单击“添加”按钮。
一个Windows应用程序可以包含多个窗体。
窗体类型 在C#中,窗体分为如下两种类型: (1)普通窗体,也称为单文档窗体(SDI),前面所有创建的窗体均为普
通窗体。普通窗体又分为如下两种: ● 模式窗体。这类窗体在屏幕上显示后用户必须响应,只有在它关闭后才
Program.cs文件 :
using System; using System.Collections.Generic; using System.Windows.Forms; namespace Proj8_1 { static class Program
{ /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); //启动窗体为Form1 }
///否则为false。</param>
protected override void Dispose(bool disposing) //重写基类Dispose()方法
{ if (disposing && (components != null))
{
components.Dispose();
} base.Dispose(disposing); //调用基类的Dispose()方法

第五章菜单工具栏状态栏和对话框

第五章菜单工具栏状态栏和对话框

11. 显示窗口列表(Window List)检查框:
决定是否显示所有打开的子窗体标题。
对MDI窗体和MDI子窗体有效,对普通窗体无效。
5.1 菜单设计
3.菜单设计的几项操作:
(1).设计下拉菜单 (2).设计子菜单或改变子菜单级别 (3).为菜单项分组
菜单名用减号“-” (4).为菜单项指定访问键和快捷键
5.4.2 通用对话框
三、通用对话框使用---打开/另存为对话框
属性
4.InitDir(初始化路径)属性:该属性用来指定打开对话框 中的初始目录,若不设置,系统则默认为“C:\My Documents\”。
sbrScrl
4
Scroll Lock 键。当激活滚动锁定时,用黑体显示字母 SCRL,反之,当停用滚动键时, 显示暗淡的字母。
sbrTime 5 Time。以系统格式显示当前时间。
sbrDate 6 Date。以系统格式显示当前日期。
5.3 状态栏(StatusBa源自 控件)3.状态栏事件响应及显示信息修改
2. 在ToolBar控件中添加按钮 (1)ToolBar控件
ToolBar控件包含一个按钮对象集合,该对象被用来创 建与应用程序相关联的工具栏。工具栏包含一些按钮,这 些按钮与应用程序菜单中各项的按钮对应,工具栏为用户 访问应用程序的最常用功能和命令提供了图形接口。
(2)为工具栏连接按钮 右键单击Toolbar控件,选择“属性”命令打开如图2所
False(缺省):选择“取消”按钮,没有错误警告。
2、 通用对话框的方法
除了Acton属性,VB还提供了一组方法用来打开不同类型对话框
ShowOpen
ShowSave ShowColor

win32设计菜单、点击显示弹出对话框(内含可实现源代码)

win32设计菜单、点击显示弹出对话框(内含可实现源代码)

专业课程实验报告课程名称:windows程序设计开课学期: 2015至2016 学年第1学期专业:计算机科学与技术年级班级:2013级学生姓名:刘敏学号:222013*********实验教师:刘红俊计算机与信息科学学院软件学院wcex.lpszMenuName = MAKEINTRESOURCE(IDC_WIN32PROJECT2);2.对话框资源及其应用:1)模式对话框:①定义对话框资源:资源文件中如此定义对话框资源:对话框名 DIALOGEX x,y,weight,hightSTYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION ""FONT 9, ""BEGIN对话框的控件定义END②调用函数DiaLogBox显示对话框;③构造对话框消息处理函数;④关闭对话框。

2)非模式对话框:①定义非模式对话框:STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |WS_SYSMENU|WS_VISIBLE②创建对话框函数:HWND CreateDialog{hInst, MAKEINTRESOURCE(IDD_SHOWBOX),hWnd,(DLGPROC)DlgProc}③消息循环:while (GetMessage(&msg, NULL, 0, 0)){if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)){TranslateMessage(&msg);DispatchMessage(&msg);}}④关闭对话框:DestroyWindow(hDlg);3)程序加载图标:IDI_WIN32PROJECT2 ICON "Win32Project2.ico"IDI_SMALL ICON "small.ico"(三)程序代码:Win32Project2.cpp// Win32Project2.cpp : 定义应用程序的入口点。

Windows程序设计课程设计任务书

Windows程序设计课程设计任务书12020年4月19日Windows程序设计课程设计任务书课程设计题目1: 设计一个简单的通讯录管理系统程序(对话框方式)一、设计目标与内容:1. 了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2. 基本掌握面向对象程序设计的基本思路和方法;3. 掌握用VC++开发应用程序的的一般步骤和方法;4. 学习对话框的编程基本知识二、功能描述1. 编写一个基本对话程序,程序中显示学生通信录信息(列表控件显示)信息包括:姓名,学号,qq号码或MSN,邮箱,固定电话,手机号码,专业、班级、性别等(前面为必须也能够根据需要增加自行设计)。

2. 能够增加删除、学生信息。

删除学生信息。

3. 增加学生信息,能够再建立一个对话框,对话框中输入增加的学生信息,要求专业只能从计算机学院三个专业中选择,性别只能单选,其它输入限制,如学22020年4月19日号、电话号码只能输入数字,姓名只能有4个汉字(8个字符长度)。

三、设计要求:1. 用VC++进行编码,实现应用程序的功能。

注重编码质量,代码要有适当的注释;2. 必做题2、提交设计报告一份(课程设计任务书、目录、主要的数据结构、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。

32020年4月19日Windows程序设计课程设计任务书,课程设计题目2: 设计一个简单的通讯录应用程序(视图方式)一、设计目标与内容:1. 了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2. 基本掌握面向对象程序设计的基本思路和方法;3. 掌握用VC++开发应用程序的的一般步骤和方法;4. 学习掌握文档视图架构5. 学习掌握文档序列化机制6. 能够利用所学的基本知识,设计一个简单的通讯录应用程序,具有以下功能:①用文件来保存通讯录信息(必须实现的功能)②编程实现通讯录记录的添加、删除、修改、浏览和查询(必须实现的功能)。

3.2.4 Windows XP 的窗口和对话框_大学计算机基础(第2版)_[共3页]

61 在Windows 中,可以把整个屏幕或某个窗口复制到剪贴板。

① 复制整个屏幕:按“Print Screen ”键,整个屏幕被复制到剪贴板。

② 复制当前活动窗口:按“Alt + Print Screen ”组合键能将当前活动窗口复制到剪贴板。

3.2.4 Windows XP 的窗口和对话框1.Windows XP 的窗口(1)Windows XP 的窗口组成在中文版Windows XP 中有许多种窗口,其中大部分都包括了相同的组件,如图3-33所示为一个标准的窗口,它由标题栏、菜单栏、工具栏等几部分组成。

● 标题栏:位于窗口的最上部,它标明了当前窗口的名称,左侧有控制菜单按钮,右侧有最小、最大化或还原以及关闭按钮。

● 菜单栏:位于在标题栏的下面,它提供了用户在操作过程中要用到的各种访问途径。

● 工具栏:在其中包括了一些常用的功能按钮,用户在使用时可以直接从上面选择各种工具。

● 状态栏:它在窗口的最下方,标明了当前有关操作对象的一些基本情况。

● 工作区域:它在窗口中所占的比例最大,显示了应用程序界面或文件中的全部内容。

●滚动条:当工作区域的内容太多而不能全部显示时,窗口将自动出现滚动条,用户可以通过拖曳水平或垂直的滚动条来查看所有的内容。

图3-33 Windows XP 窗口组成在中文版Windows XP 系统中,有的窗口左侧新增加了链接区域,这是以往版本的Windows 所不具有的,它以超级链接的形式为用户提供了各种操作的便利途径。

一般情况下,链接区域包括几种选项,用户可以通过单击选项名称的方式来隐藏或显示其具体内容。

● “系统任务”选项:为用户提供常用的操作命令,其名称和内容随打开窗口的内容而变化,当选择一个对象后,在该选项下会出现可能用到的各种操作命令,可以在此直接进行操作,而不必在菜单栏或工具栏中进行,这样会提高工作效率,其类型有“文件和文件夹任务”、“系统任务”等。

● “其他位置”选项:以链接的形式为用户提供了计算机上其他的位置,在需要使用时,可以快速转到相关的位置,打开所需要的其他文件,如“我的电脑”、“我的文档”等。

第十讲WindowsGUI程序设计


Form类的常用方法
构造方法
一个桌面应用程序一般都是由一个或多个窗体构 成的。其中有一个主窗体,一般来说,程序开始 运行时都是以生成主窗体开始的。生成主窗体的 工作是由窗体类的构造函数来完成的, Form类 默认提供一个无参数构造函数。 如:Form myFrm=new Form();
Form类的常用方法
WinForms窗体
WinForms窗体对象是Windows应用程序的支 撑框架,必须至少有一个WinForms
一般使用Application.Run(窗体对象)启动一个 Windows 应用程序
WinForms窗体对象是构件GUI的顶层容器
一般使用this.Controls.Add(控件对象)添加其他控 件对象
应用程序 类似于Windows应用程序开发
WinForms应用程序模型
Windows 窗体的应用程序编程模型主要由窗 体、控件及其事件组成。
窗体:可视元素的顶层容器,应用程序的支撑框架 控件:添加到窗体中的每个组件(如 Button、 TextBox 或 RadioButton)称为控件。 事件:对象所能识别的各种动作,包括Click(鼠标单 击)、DblClick鼠标(双击),Load(窗体加载)
显示方法
主窗体在调用其构造方法之后将会自动显示,但是其他 窗体则必须调用其窗体的显示方法才能显示出来。窗体 的显示有两种方式:一种是模式方式,该方式不允许用 户在关闭该窗体之前和应用程序的其他窗体之间进行切 换;另一种是非模式方式,它允许用户在当前窗体和应 用程序的其他窗体之间进行自由的切换。 非模式方式显示的方法是Show() 模式方式显示的方法是:ShowDialog()
定义在System.Windows.Forms命名控件下, 其名称为Form类

9界面高级设计Swing


中间容器
• JPanel:最灵活、最常用的中间容器。
• JScrollPane:与 JPanel 类似,但还可在大
的组件或可扩展组件周围提供滚动条。 • JTabbedPane:包含多个组件,但一次只显 示一个组件。用户可在组件之间方便地切换。 • JToolBar:按行或列排列一组组件(通常是 按钮)。
… ImageIcon buttonIcon1 icon):icon表示使用的图标 JButton(Icon = new ImageIcon("on.gif"); JButton b1 = new JButton("First Button", buttonIcon1); JButton(String text):text表示使用的字符串 b1.setMnemonic(KeyEvent.VK_F); JButton(String text, Icon icon) … 创建一个带图标 设置键盘 的JButton 快捷方式
体 • 它的构造函数:
JFrame() JFrame(String Title)
• 组件必须添加至内容窗格,而不是直接添
加至 JFrame 对象,示例:
frame.getContentPane().add(b);
15
Designed by gadfly7,©2006
JPanel
• JPanel 组件是一个中间容器 • 用于将小型的轻量级组件组合在一起
con.setLayout(new FlowLayout()); JLabel jl = new JLabel(“文本域”); con.add(jl); JTextField tf = new JTextField(20); con.add(tf); …
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

对话框的创建
首先创建对话框窗口 然后根据一定的次序调用 CreateWindowEx分别创建内部子控件 由于子控件的创建必须指定其在对话框 中的位置以及正确的窗口类别、标题等 信息,给程序员内部动态创建带来一定 的复杂性 VC++提供的对话框编辑器,给我们提供 了设计子窗口的便利工具

结束模态对话框
EndDialog 获取父窗口句柄 启用父窗口
//父窗口继续处理鼠标 和键盘消息
SetWindowLong(hwnd, DWL_ENDDIALOGCALLED, TRUE); //设置私有数据 SetWindowLong(hwnd, DWL_DLGRESULT, nResult); //设置返回值
对话框的扩展属性

风格
– WS_CAPTION、WS_SYSMENU、 WS_THICKFRAME、DS_3DLOOK、 DS_CENTER、DS_CONTEXTHELP、 WS_MINIMIZEBOX、WS_MAXIMIZEBOX、 WS_VSCROLL、WS_HSCROLL
菜单 CLASSNAME
自定义对话框窗口类
HEXCALC 源码

通用对话框
为实现标准用户界面,提供统一、通用 的功能,而实现的一组增强对话框 开发人员可以根据应用程序的特点,对 已有的这些通用对话框进行定制扩展

通用对话框的种类
打开—— GetOpenFileName() 保存—— GetSaveFileName() 查找—— FindText() 替换—— ReplaceText() 页面设置——PageSetupDlg() 打印—— PrintDlg()、PrintDlgEx() 字体—— ChooseColor() 颜色—— ChooseFont()
结束对话框 EndDialog()
结束对话框 DestroyWindow()
COLOR2
实例 源码

资源文件
COLORSCRDLG DIALOG DISCARDABLE 16, 16, 120, 141 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION CAPTION "Color Scroll Scrollbars" FONT 8, "MS Sans Serif" BEGIN CTEXT "&Red",IDC_STATIC,8,8,24,8,NOT WS_GROUP SCROLLBAR 10,8,20,24,100,SBS_VERT | WS_TABSTOP CTEXT "0",13,8,124,24,8,NOT WS_GROUP CTEXT "&Green",IDC_STATIC,48,8,24,8,NOT WS_GROUP SCROLLBAR 11,48,20,24,100,SBS_VERT | WS_TABSTOP CTEXT "0",14,48,124,24,8,NOT WS_GROUP CTEXT "&Blue",IDC_STATIC,89,8,24,8,NOT WS_GROUP SCROLLBAR 12,89,20,24,100,SBS_VERT | WS_TABSTOP CTEXT "0",15,89,124,24,8,NOT WS_GROUP END
非模态对话框
允许在对话框和创建对话框的窗口之间 进行切换 可以与父窗口之间进行动态交互

非模态对话框的内部实现原理
CreateDialog //#define CreateDialog… CreateDialogParam… CreateDialogParam FindResource //在exe文件中查找并定位对话 //框模板 LoadResource CreateDialogIndirectParam //根据内存块中的对话框模 //板创建父、子窗口 FreeResource 返回创建的对话框窗口句柄 //注意与模态对话框的区别
complete working model of a Windows® like operating system available. Consequently, working programmers will learn a great deal by studying ReactOS source code and even participating in ReactOS development.
对话框Βιβλιοθήκη 对话框包含多种子窗口控件的弹出式窗口,这 些控件的大小和位置通常在程序资源描 述文件的“对话框模板”中指定。一般 来说,除了在创建对话框时初始化子窗 口控件,处理来自它们的消息以及结束 对话框之外,不需要再给对话框过程增 加其它功能,对话框过程通常不处理 WM_PAINT、WM_DESTROY消息,不 接受WM_CREATE消息,而是在 WM_INITDIALOG消息中执行初始化操 作;也不处理键盘和鼠标的输入。
修改创建此对话框线程的消息环
while(GetMessage(&msg, NULL, 0, 0)) { if (hDlgModeless == 0 && !IsDialogMessage(hDlgModeless, &msg)) { if(!TranslateAccelerator(hwnd, hAccel, &msg)) TranslateMessage(&msg); DispatchMessage(& } }
深入学习
ReactOS aims to achieve complete binary compatibility with both applications and device drivers meant for NT and XP operating systems, by using a similar architecture and providing a complete and equivalent public interface. Although Free Software advocates agree that free software operating systems improve the state of the art by fostering competition, ReactOS has practical benefit for others, too; ReactOS is the most
通用对话框的基本使用方法

对于每种对话框,都有对应的使用结构
– 打开与关闭—— – 查找与替换—— – 页面设置—— – 打印—— OPENFILENAME、OFNOTIFY FINDREPLACE PAGESETUPDLG PRINTDLG、PRINTDLGEX、 PRINTPAGERANGE CHOOSEFONT CHOOSECOLOR

– 处理所有消息
About2
实例 源码

About3
实例 源码

资源文件
ABOUTBOX DIALOG DISCARDABLE 32, 32, 180, 100 STYLE DS_MODALFRAME | WS_POPUP FONT 8, "MS Sans Serif" BEGIN CONTROL "OK",IDOK,"EllipPush",WS_GROUP | WS_TABSTOP,73,79,32,14 ICON "ABOUT3",IDC_STATIC,7,7,20,20 CTEXT "About3",IDC_STATIC,40,12,100,8 CTEXT "About Box Demo Program",IDC_STATIC,7,40,166,8 CTEXT "(c) Charles Petzold, 1998",IDC_STATIC,7,52,166,8 END
分类
模态对话框 非模态对话框 通用对话框

模态对话框
About1 源码

模态对话框的内部实现原理
DialogBox //#define DialogBox… DialogBoxParam… DialogBoxParam 逐层向上查找祖先窗口,直到找到一个具有popup或overlapped风格的窗 口作为父窗口 禁用父窗口 //父窗口不再处理鼠标和键盘消息 CreateDialogParam //创建模态对话框(父、子窗口) SetWindowWord(hwndDlg, DWL_ENDDIALOGCALLED, FALSE);//设置 私有数据 while(!GetWindowWord(hwndDlg, DWL_ENDDIALOGCALLED)) { //有 自己的消息环 GetMessage(&msg, NULL, 0, 0); if (!IsDialogMessage(hwndDlg, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } DestroyWindow(hwndDlg); //销毁窗口
非模态对话框的销毁
case WM_CLOSE: DestroyWindow(); hDlgModeless = NULL; break;
模态对话框与非模态对话框的 区别
模态 DialogBox 不允许在同一应用程序 的窗口之间切换 对话框消息不经过应用 程序消息队列 非模态 CreateDialog 允许在同一应用程序的 窗口之间切换 对话框消息经过应用程序 消息队列
– 字体—— – 颜色——
相关文档
最新文档