第四章对话框和常用控件

合集下载

VB 第四章 菜单、工具栏、状态栏与对话框

VB 第四章 菜单、工具栏、状态栏与对话框

下拉式菜单设计1.下拉式菜单的组成(如图4.2所示)(1)下拉式菜单由主菜单、主菜单项、子菜单等组成。

(2)子菜单可分为一级子菜单、二级子菜单直到五级子菜单。

(3)每级子菜单由菜单项、快捷键、分隔条、子菜单提示符等组成。

图4.2 下拉式菜单的组成①菜单项:所有子菜单的基本元素就是菜单项,每个菜单项代表一条命令或子菜单标题。

②分隔条:分隔条为一条横线,用于在子菜单中区分不同功能的菜单项组,使菜单项功能一目了然,并且方便操作。

③快捷键:为每个最底层的菜单项设置快捷键后,可以在不用鼠标操作菜单项的情况下,通过快捷键直接执行相应的命令。

④热键:热键是在鼠标失效时,为用户操作菜单项提供的按键选择,使用热键时,须与<Alt>键同时使用。

⑤子菜单提示符:如果某个菜单项后有子菜单,则在此菜单项的右边出现一个向右指示的小三角子菜单提示符。

2.菜单编辑器的启动执行菜单命令:工具| 菜单编辑器,即可打开菜单编辑器,如图4.3所示。

菜单编辑器分为上下两部分:上半部分用于设置菜单项的属性,下半部分用于显示用户设置的主菜单项与子菜单项内容。

图4.3 菜单编辑器3.菜单编辑器的使用方法(1)标题栏(Caption):输入菜单项的标题、设置热键与分隔条;①标题:直接输入标题内容,如“文件”。

②热键:在菜单项中某个字母前输入“&”后该字母将成为热键,如在图4.3的文件主菜单项中输入“文件(&F)”。

③分隔条:在标题框中键入一个连字符“-”即可。

(2)名称栏(Name):用于输入菜单项内部惟一标识符,如图4.3 “File”等,程序执行时不会显示名字栏内容。

注意:分隔符也要输入名称,且不能重复命名。

(3)快捷键下拉列表框(Shortcut Key):用于选择菜单项的快捷键,用鼠标单击列表框的下拉按钮,在列表框中可选择不同的快捷键。

(4)下一个按钮(Next):当用户将一个菜单项的各属性设置完后,单击“下一个”按键可新建一个菜单项或进入下一个菜单项。

对话框和常用控件

对话框和常用控件
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.非模态对话框

对话框与通用控件

对话框与通用控件



CScrollBar* pSB = (CScrollBar*) GetDlgItem(IDC_LOYAL); pSB->SetScrollRange(nMin, nMax); pSB = (CScrollBar*) GetDlgItem(IDC_RELY); pSB->SetScrollRange(nMin, nMax);
为对话框提供控件形式的滚动条
常用于为其它控件提供标签 显示连续的AVI视频剪辑 位于某一行文本之上的按钮, 可用来控制显示文件的宽度
热键
CHotKeyΒιβλιοθήκη trl用于通过按下某一组合键
来很快的执行某些常用的操作
图象列表 列表 进度
CImageList CListCtrl
一系列图象 显示文本及其图标列表的窗口
#include "exaView.h" #include "exaDialog.h"
6.编译和测试该应用程序。
深入理解EXA应用程序
当程序中调用了DoModal时,只有在用户关闭 了对话框后,控制才能返回到程序中。只有 理解了这点,才算理解了模式对话框。当我 们开始学习无模式对话框时,就会深切地体 会到模式对话框的程序设计是多么的简单, 不过当DoModal被调用时,实际上在“幕后” 将引起一系列的动作。我们将一些调用关系 总结如下:
void CExaView::OnLButtonDown(UINT nFlags, CPoint point) { CEx06aDialog dlg; //建立对象 dlg.m_strName = "Shakespeare, Will"; dlg.m_nSsn = 307806636; dlg.m_nCat = 1; // 0 = hourly, 1 = salary dlg.m_strBio = "This person is not a well-motivated tech writer"; dlg.m_bInsLife = TRUE; dlg.m_bInsDis = FALSE; dlg.m_bInsMed = TRUE; dlg.m_strDept = "Documentation"; dlg.m_strSkill = "Writer"; dlg.m_strLang = "English"; dlg.m_strEduc = "College"; dlg.m_nLoyal = dlg.m_nRely = 50;

第4章对话框和常用控件(2)

第4章对话框和常用控件(2)

4.2.3 控件的数据交换(DDX)和数据校验(DDV)
使用MFC ClassWizard可以很容易地为一个控件定义关联变 量并可设置其数据范围。例如,下面的步骤是为CEx_DlgCtrlsDlg类 的按钮控件IDC_BUTTON1添加并使用其关联变量m_RelBtn。 (1) 打开MFC ClassWizard,并切换到Member Variables页 面,如图4.30所示。
图4.28 添加按钮消息映射函数
(6) 单击[OK]按钮,在MFC ClassWizard的“Member functions” 列表中将列出新增加的成员函数。选择此函数,单击[Edit Code] 按钮,定位到该函数的实现代码处。在此成员函数中添加代码: void CEx_DlgCtrlsDlg::OnButton1() { MessageBox("你按下了\"Button1\"按钮!"); } (7) 编译并运行,当单击[Button1]按钮时,就会执行OnButton1 函数,弹出一个消息对话框。
图4.24 弹出的快捷菜单
(4) 从快捷菜单中选择Add Member Variable(添加成员变量), 在出现的对话框中定义一个CButton类对象m_btnWnd,通常 以“m_”来作为变量的开头,表示“成员”(member)的意思。 如 图4.25所示,单击[OK]按钮。
图4.25 添加成员变量
(2) 单选按钮
单选按钮的外形是在文本前有一个圆圈,当它被选中 时,单选按钮中就标上一个黑点,它可分为一般和自动两 种类型。
(3) 复选框
复选框的外形是在文本前有一个空心方框,当它被选中 时,复选框中就加上一个“ ”标记,通常复选框只有选 中 和未选中两种状态. 若复选框前面有一个灰色是“ ”,则这样的复选框 是 三态复选框,它表示复选框的选择状态是“不确定”。在 3. 按钮的消息 复 在按钮映射的消息中,常见的只有两个 :BN_CLICKED Style页面中选中“ (状态 )Tri-state (选框属性对话框的 单击按钮)和BN_DOUBLECLICKED (双击按钮 )。 ”项。

4 对话框及常用控件 (第四章 对话框和常用控件)

4 对话框及常用控件 (第四章 对话框和常用控件)

1.什么是对话框?它分为哪两类?这两类对话框有哪些不同?答:对话框是一种特殊的窗口,主要功能是输出信息和接收用户的输入。

对话框分为有模式对话框和无模式对话框。

当一个有模式对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。

而无模式对话框打开时,用户可以同时打开其他窗口对象,操作完毕后,又可用鼠标或其他方式激活该窗口。

2.什么是对话框模板、对话框资源和对话框类?答:对话框模板是一个描述对话框的内存结构,用于添加控件及其布局。

对话框资源指快捷键、对话框、菜单、字符串、工具栏按钮、图表、版本信息等。

对话框类用于实现对话框功能。

3.对一个对话框编程一般经过几个步骤?答:1. 在资源编辑器中画对话框,添加控件,设定控件位置、大小、ID和其它属性;2. 定义对话框回调函数,添加控件的事件处理函数;3. 注册对话框函数4、什么是控件?根据控件的性质可以将控件分为几类?答:在Windows中所用的按钮控件是用来实现一种开与关的输入。

常见按钮类型:按键按钮、单选按钮、复选框按钮。

5.向对话框添加一个常用控件的方法有哪些?这些方法是否使用于ActiveX控件?答:1、先点击控件,然后在对话框上单击,2、先点击控件,然后在对话框上点住不放,画出像要的大小。

否。

6.什么是DDV/DDX技术?如何使用这种技术?答:DDX(对话框数据交换)机制用来初始化对话框中的数据,并向应用程序返回数据,它使得用户向对话框加载对象数据和当对话框关闭时恢复其中的数据这两个过程自动化。

DDV(对话框数据验证有效性)机制用于将数据返回成员变量之前将数据的长度和范围有效化。

7.什么是空间的通知消息?它在编程中起哪些作用?答:控件消息由按钮(BN_)、编辑框(EN_)、组合框(CBN_)和列表框(LBN_)等产生。

控件通过向父窗口发送控件通知消息来表明发生了某种事件。

8.什么是按钮控件?它有几种类型?答:按钮控件常用来接收用户的操作信息,激发相应的事件,按钮是用户与程序交互的最简便的方法。

VisualBasic常用基本控件

VisualBasic常用基本控件
LargeChange 单击此 处时Value的变化值 SmallChange 单击此 处时Value的变化值
4.7 滚动条
2.事件 Scroll事件:在滚动条内拖动滑块时触发的事件。 (单击滚动箭头或滚动条时不发生Scroll事件); Scroll事件用于跟踪滚动条中的动态变化 Change事件:改变滚动框位置触发的事件。 Change事件则用来获得变化后滚动条的位置 (值 ) 示例
属性 Name Caption Default Cancel ToolTipText 用途 引用该对象的名称 按钮上显示的文本 默认命令按钮,Enter 默认取消按钮,Esc 解释功能
【例4-1】
对象 窗体 属性 设置
(名称) Caption FontName FontSize
(名称) Caption FontSize
ListBox控件Style取值及含义 0 1 默认,文本项旁无复选框 有复选框,可选择多项
ComboBox控件Style取值及含义 0 1 2 下拉列表+文本框 文本框+不能下拉列表 仅允许在下拉列表中选择
4.5 列表框、组合框
1.主要属性
MultiSelect属性(ListBox) :是否能够复选。 • 0:不可复选;1:简单复选;2:复杂复选 Selected属性:返回某个项目的选择状态。 • List1.selected(0)=ture
常用属性是Caption 可先画出框架,再将其它控件画到框架中;或
者“剪切”框架外的控件,“粘贴”到框架中
4.4.3 框架
【例4-5】用框架将单选按钮分组,分别用来改变文 本框中文字的字体、字的大小、字的颜色。
4.5 列表框和组合框
列表框(ListBox)可从列出的多个项目中任意选择, 可选择其中的一项或多项。 组合框(ComboBox)=文本框+列表框,用户可以像 列表框一样选择,也可直接在编辑区输入。

第4章 窗体和常用控件

第4章  窗体和常用控件
用途 窗体的名称,供相关程序使用 窗体标题栏显示的文本 窗体的背景颜色 窗体的前景色 窗体的边框风格 窗体是否具有控制菜单 窗体是否对用户事件作出响应 窗体的高度 窗体的宽度 窗体距屏幕左边的距离 窗体距屏幕顶部的距离 窗体是否具有最大化按钮 窗体是否具有最小化按钮 程序运行时窗体是否能够移动
VB采用了事件驱动的编程机制。当没有事件发生时,程序处 于停滞状态,只有事件发生时,程序才会运行。窗体除了 Click事件外,还有以下常见的事件。 (1)Initialize事件 当窗体第一次创建时会触发Initialize事件,一般将窗体的初 始化代码存放在该事件过程中。 (2)Load 事件 在一个窗体被装载时触发Load事件。通常,Load 事件过程用 来包含一个窗体的启动代码,例如,指定控件缺省设置值等。 (3)Unload事件 运行程序后,如果关闭窗体,就会触发Unload事件。 (4)Activate事件 当一个窗体变为活动窗体时,就会触发Activate事件。
Private Sub Option1_Click() = "宋体" End Sub Private Sub Option2_Click() = "黑体" End Sub Private Sub Option3_Click() = "楷体" End Sub
其主要属性是Caption属性,该属性用于设置在 按钮上显示的文本,命令按钮见事件是Click事件。
【例4-3】
对象属性设置如表所示。
对象名称 属性 Text1 Text Text2 Text Text3 Text Locked Label1 Caption Label2 Caption Label3 Caption Command1 Caption 属性值 空白 空白 空白 True 加数1 加数2 和 求和 说明 程序启动时文本框内无文本 程序启动时文本框内无文本 程序启动时文本框内无文本 设置该文本框不可编辑 标签框标题 标签框标题 标签框标题 命令按钮标题

4.1 对话框和常用控件

4.1 对话框和常用控件
控件的选择 静态文本 静态图片 编辑框
组框
复选框 组合框 水平滚动条 旋转按钮 滑动条 列表视图
按钮
单选框 列表框 垂直滚动条 进展条 热键 树形视图
标签
复合编辑 月历 用户定制工 具 控件工具栏和各按钮含义
动画
日期选择 IP地址 组合框的扩 展
4.1对话框的使用
(2)单个控件的选取 鼠标选取 保证选择按钮( )是被选中的,移动鼠标指针至指定的控件上,单击鼠标左键。 助记符选取 在相应的控件上右击。选择“Properties”菜单项,对话框中的“Caption”框是用来 输入控件的标题,在标题中的某个字母之前键入“&”符号,则该字母就是此控件的助记符。 Tab键选取 利用Tab键,可在对话框内的控件中进行选择。每按一次Tab键依次选取对话框中 的下一个控件,若按住Shift键,再单击Tab键则选取上一个控件。 (3)多个控件的选取 在对话框内按住鼠标左键不放,拖出一个大的虚框,释放鼠标,则被该虚框所包围的控件 都将被选取。 先按住Shift键不放,用鼠标选取控件,直到所需要的多个控件选取之后再释放Shift键。若 在选取时,对已选取的控件再选取一下,则该控件取消选取。 一旦单个控件被选取后,其四周由选择框包围着,选择框上还有几个(通常是八个)蓝色实 心小方块,拖动它可改变控件的大心小方块,这个控件称为主 要控件,而其他控件的选择框的小方块是空心的。如图。
标尺
控件工具栏
基准线
布局工具栏
打开的对话框编辑器
4.1对话框的使用
在对话框中添加和编辑控件
(1)控件添加的方法



在对话框中添加一个控件的方法有下列几种: 在控件工具栏中单击某控件,鼠标箭头在对话框内变成“十”字形状;在对话框指定 位置单击鼠标左键,再拖动选择框可改变控件的大小和位置。 在控件工具栏中单击某控件,鼠标箭头对话框内变成“十”字形状;在指定位置处单 击鼠标左键不放,拖动鼠标至满意位置,释放鼠标键。 用鼠标左键点中控件工具栏中的某控件,并按住鼠标键不放;在移动鼠标到对话框的 指定位置的过程中,会看到一个虚线框,下面带有该控件的标记;释放鼠标键。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 对话框和常用控件
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地址
int AddString( LPCTSTR lpszItem ); int InsertString( int nIndex, LPCTSTR lpszItem );
(2) 删除列表项
int DeleteString( UINT nIndex ); void ResetContent( ); // nIndex指定要删除的列表项的索引
用户定制控件
扩展组合框
2.8 工具箱中的常用控件
根据控件的特性和功能,一般可将其分为三类:Windows公共 控件、ActiveX控件以及MFC新增的一些控件等。下表列出了一些常 用控件类。
2.8.1 静态控件和按钮
一个静态控件是用来显示一个字符串、框、矩形、图标、位图或 增强的图元文件。它可以被用来作为标签、框或用来分隔其它的控件 。一个静态控件一般不接收用户输入,也不产生通知消息。 本( 在对话框编辑器的控件工具栏中,属于静态控件的有:静态文 )、组框( )和静态图片( )三种。
void CListBoxDlg::OnSelchangeList1() { CListBox::GetCurSel来获取这个结果 int nCount = m_list.GetSelCount(); return; // 开辟缓冲区 // 将各个选项的索引号内容存放在缓冲区中 // 获取用户选中的项数
(3)创建一个与ID_DIALOG_MODAL相关联的对话框类 (4)在主对话框资源中的确定事件中添加如下代码:
void CDialogModalDlg::OnOK() { CSimpleDialog dialog; dialog.DoModal(); }
2.2 对话框的常用操作
非模态对话框要首先调用Cdialog类的Create方法进行创建,然 后通过ShowWindows方法显示,而在销毁时要使用Cdialog类的 DestroyWindow方法 BOOL Create(LPCTSTER lpszTemplate,CWnd *pParentWnd) BOOL ShowWindow(int nCmdShow) //表示窗口的显示状态 BOOL DestroyWindow();//该方法销毁窗口
m_list.GetText(buffer[i], str);
allStr = allStr + "[" + str + "]"; } delete []buffer; // MessageBox(allStr); }
// 获得各个索引的项目文本
// 处理项目文 // 释放内存 // 处理获得的文本
图 上网问卷调查对话框
2.8.2 编辑框
1.编辑框 编辑框是一个让用户从键盘输入和编辑文本的矩形窗口,用户可 以通过它,很方便地输入各种文本、数字或者口令,也可使用它来编 辑和修改简单的文本内容。当编辑框被激活且具有输入焦点时,就会 出现一个闪动的插入符,表明当前插入点的位置。 当编辑框的文本修改或者被滚动时,会向其父窗口发送一些消息
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL ); 例:构造一个文件打开对话框
CFileDialog dialog(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"All files(*.*)|*.*||",AfxGetMainWnd()); CString str; if(dialog.DoModal()==IDOK){ str = dialog.GetPathName();
(5) 列表框的多项选择 if (nCount == LB_ERR)
int *buffer = new int[nCount]; m_list.GetSelItems(nCount,buffer); CString allStr = NULL, str; for (int i=0; i<nCount; i++) {
标尺
控件工具栏
基准线
布局工具栏
2.2 对话框的常用操作
2.显示对话框 模态对话框可以声明一个对话框对象,然后调用该对象的 DoModal方法进行显示,要关闭模态对话框可以调用Cdialog类的 OnOk或OnCancel方法。 例:创建一个对话框,当用户点击确定是显示模态对话框
(1)创建一个基于对话框的应用程序,项目名称为DialogModal (2)在资源视图中心创建一个对话框,命名在ID_DIALOG_MODAL
MessageBox(str);
}
2.7 通用对话框
2.颜色选择对话框 CColorDialog对象是一个拥有一个颜色列表的对话框,用户可以 在其中选择颜色,也可以定制颜色
Dialog dlg; if(IDOK==dlg.DoModal()){ COLORREF col = dlg.GetColor(); }
2.7 通用对话框
通用对话框是由操作系统提供的任何应用程序都可以获得的对话 框,在visual c++中,对这些对话框进行了封装。常用的通用对话框有 :文件对话框、查找/替换对话框、颜色对话框等。
2.7 通用对话框
1.打开文件对话框 CFileDialog类对对话框进行了封装,文件对话框为“打开”和“ 另存为”文件提供了一个方便的接口。CFileDialog根据构造函数的参数 决定是创建打开还是另存为对话框。
2.1 对话框和控件概述
1.模态对话框 当对话被弹出时,用户必须在对话框中进行相应的操作,在退出 对话框之前,对话框所在的应用程序不能继续执行。例如Windows 的各种应用软件中的Open File 对话框,用户不能在应用程序的其它 两者区别: 地方工作,直到对话框关闭。 创建时,模式对话框由系统自动分配内存空间,对话框退出时 ,对话框对象自动删除。无模式对话框需要来指定内存,退出时 2.非模态对话框 还需删除对话框对象。 对话框保留在屏幕的同时,用户还可以在应用程序其它窗口中进 退出时,两种对话框所使用的终止函数不一样。模式对话框 通过调用CDialog:: EndDialog来终止,无模式对话框则是调用 行工作的对话框称为非模态对话框。例如,Word字处理软件中的 CWnd::DestroyWindow来终止。 Find 和Replace对话框就是非模态对话框的一个很好的例子
图 静态图片控件的General和Style属性对话框
2.8.1 静态控件和按钮
示例:设置静态文本控件文本和背景颜色
2.8.1 静态控件和按钮
在Windows中所用的按钮是用来实现一种开与关的输入,常见 的按钮有3种类型:按键按钮、单选按钮、复选框按钮
图 按钮的不同类型
2.8.1 静态控件和按钮
2.8.2 编辑框
2. 编辑框的基本操作 (1)口令设置 CEdit::SetPasswordChar 来定义自己的口令字符,其函数原型
如下:void SetPasswordChar( TCHAR ch );
(2)设置编辑框的页面边距 应用程序可通过调用成员函数CEdit::SetMargins来实现,这个函 数的原型如下: void SetMargins( UINT nLeft, UINT nRight ); 其中,参数nLeft和nRight分别用来指定左、右边距的像素大小。
方法 GetPathName GetFileName GetFileExt GetFileTitle 说 明
用于返回用户选择文件的完整路径 用户返回用户选择文件的名称包括扩展名 用于返回文件的扩展名 用户返回文件输入框中的文件名,不包括扩展名
2.7 通用对话框
CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL,
相关文档
最新文档