06 Windows通用对话框

合集下载

第8章通用对话框、菜单、多文档界面

第8章通用对话框、菜单、多文档界面
8.1.1 添加通用对话框(Common Dialog)控件工具箱
两种方法: 1、菜单:工程—部件,在对话框中选“Microsoft Common
Dialog Control 6.0 ” 2、快捷:工具箱单击鼠标右键,在快捷菜单中选“部件”,在
对话框中选“Microsoft Common Dialog Control 6.0 ”
8.3.1 单文档界面
1.添加窗体 三种方法:
A.选择“工程”菜单的“添加窗体”子菜单 B.选择工具栏的添加窗体按钮 C.在工程资源管理窗口单击鼠标右键,在出现的快捷菜单 中选择“添加”菜单中的“添加窗体”菜单
8.1.2 通用对话框的使用
通用对话框控件没有事件,只有方法和属性。 通过方法或Action属性值显示标准对话框。 通用对话框控件中的每一个标准对话框都有自己的属性。
方法名称 ShowOpen ShowSave ShowColor ShowFont ShowPrinter ShowHelp
Action属性值 1 2 3 4 5 6
8.2.2 弹出菜单
例8-6 在例8-5的文本框中点击鼠标右键时,在鼠标当前位置弹出编辑
菜单项。 '显示编辑的弹出菜单 Private Sub Text1_MouseUp(Button As Integer, Shift As Integer,
X As Single, Y As Single) '在文本框对象上鼠标弹起事件
程序代码
.FontBold = Dlog.FontBold
.ForeColor = Dlog.Color
End With
End Sub
8.1.7 “打印”对话框
打印对话框通过ShowPrint方法或Action属性设为5打开。 打印对话框仅供用户对打印参数进行设置,要实现打印功能还需要通过对

Windows通用对话框

Windows通用对话框
CWnd*pParentWnd=NULL)
1.3 CColorDialog对话框
CColorDialog类用于实现颜色通用对话框,使用户可以从颜 色列表中选择要用的颜色。
CColorDialog类的构造函数的格式为:
CColorDialog( COLORREF clrInit=0, DWORD dwFlags=0, CWnd*pParentWnd=NULL );
Windows通用对话框
在使用Windows的过程中,用户经常会遇到 一些常用的有特定用途的对话框,如文件打 开对话框、设置字体对话框等。这样的对话 框使用非常频繁,为了使用户不必自己设计 该类型的对话框,Windows提供了一组标准 用户界面对话框,它们都由MFC库中相应的 类来支持,可以用来执行各种标准操作,如 选择文件、指定字体和选择颜色等。
CPrintDialog(BOOL bPrintSetupOnly, DWORD dwFlags=PD_ALLPAGES |
PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE |
PD_NOSELECTION,
CWnd*pParentWnd=NULL);
BOOL Create(BOOL bFindDialogOnly,
LPCTSTR lpszFindWhat,
LPCTSTR lpszReplaceWith=NULL,
DWORD dwFlags=FR_DOWN,
CWnd*pParentWnd=NULL );
CFindReplaceDialog类只提供了一个界面,它 并不会自动实现搜索和替换功能。该类使用
显示颜色对话框的方法同显示其他通用对话框一样,都是先 定义对象,然后调用DoModal()函数,根据DoModal() 函数返回的是IDOK还是IDCANCEL可知道用户是否确认了对 颜色的选择。DoModal()函数返回后,调用 CColorDialog::GetColor()方法可以返回一个COLORREF类型 的结果来指示在对话框中选择的颜色。除此之外,也可以利 用CColorDialog类中类型为CHOOSECOLOR的成员变量m_cc 获取选择的颜色值。

通用对话框

通用对话框

常用对话框
1.“打开”/“另存为”对话框 通过使用CommonDialog控件的ShowOpen和 ShowSave方法可显示“打开”和“另存为”对 话框。 2.颜色对话框 通过使用CommonDialog控件的ShowColor方 法可显示颜色对话框。颜色对话框用以从调色板 选择颜色,或是生成和选择自定义颜色。
通用对话框
1.方法:ShowColor,ShowFont,ShowHelp, ShowOpen,ShowPrinter 和 ShowSave 2.Action 属性 3.FileName 属性 4. DialogTitle属性 5.Filter 属性 6.FilterIndex 属性 7.InitDir属性
常用对话框
3.字体对话框 使用CommonDialog控件的ShowFont方法 可显示字体对话框。字体对话框用以通过指 定字体、大小、颜色、样式选择一种字体。 4.打印对话框 通过使用CommonDialog控件的ShowPrinter 方法可显示打印对话框。
练习
设计程序界面如下,Байду номын сангаас求:单击“ 设计程序界面如下,要求:单击“选取颜 色”按钮后,出现调色板,选中某种颜色 后,改变文本框的背景色;并设计一颜色 (自己任选3 (自己任选3种颜色)的右键快捷菜单改变 窗体的背景颜色。

Windows支持许多标准的对话框,比如打开文件、保存文件

Windows支持许多标准的对话框,比如打开文件、保存文件

Associate :该属性是 TWinControl 类的,用来 指 定 UPDown 控 件 所 关 联 的 控 件 。 运 行 时 UpDown 控件将自动出现在 Associate 属性指定 的控件的左侧或右侧。通常,该属性被设置为 一个 Edit 控件,当 UpDown 控件的 Position 属性 值 变 化时 , 它会 自 动地 转 化为 字 符串 显示在 Edit控件中。
关于LISTVIEW组件请见参考书。
§6.4 日期类控件 6.4.1 DateTimePicker 该组件主要用于处理DateTime 类型的日期和 时间数据,在WIN32选项卡中。其主要属性有: Date和Time :这两个属性存储了组件所记录的日 期和时间。 Kind:设置组件的显示类型,取值为dtkDate时, 显示日期;取值为dtkTime时,显示时间;缺省值 为dtkDate。 DateFormat :设置日期的显示格式:当为 dfLong 时, 年份为4位;当为dfShort 时,年份为2位。 MaxDate与MinDate:设置日期变化范围。
Index: integer类型,表明兄弟节点之间的顺序, 从0开始。
Count: 表示某节点直接子节点的个数。 TTreeNodes 类也有一个属性 Count ,但是 它表示TreeView控件所包含的所有节点数。
AbsoluteIndex:表示某节点在TreeView控件 上的绝对位置序号。
TTreeNode类的其他属性见参考书。 Selected :该属性用于指出当前被选的数据项, 其类型为 TTreeNode 。没有数据项选中时,返 回nil。
TTreeNode类的主要方法:
主要方法Add,AddChild,Delete,Insert。

对话框和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 的使用过程是一样的,在 用户选择了字体后,成员函数获取所选择 的字体信息。

菜单通用对话框

菜单通用对话框

菜单、工具栏和通用对话框菜单菜单的种类:下拉式菜单和弹出式菜单菜单的访问:鼠标访问和键盘访问。

键盘访问方式:访问键和快捷键下拉式菜单的构成:以WORD为例,讲述一下下拉式菜单的构成主菜单(主菜单项) 下拉菜单(下拉菜单项)理解菜单项的概念一个菜单项就是一个控件,具有属性、事件、方法。

菜单项的属性name:菜单项的名称,是一个只读属性,只能在设计时指定。

Caption:在菜单上显示的文字,设置访问键时,只需在要设置的字母前加“&”符号。

Index:设置菜单控件数组元素的下标索引号,是一个整数。

(理解菜单控件数组的使用与含义)Checked:设定菜单控件是否可以复选。

Enable:设定菜单控件是否可用。

Visible:设定菜单控件是否可见。

windowlist :设置菜单控件是否包含MDI窗体的子窗体列表。

菜单项的事件只有一个唯一的事件(click事件)菜单制作工具:菜单编辑器的介绍。

要点:用菜单编辑器创建菜单的步骤:分隔条访问键(CTRL)与快捷键(ALT)示例:P199事件代码:Private Sub rehw()Text1.Top = 0Text1.Left = 0Text1.Height = Me.ScaleHeight - 200 Text1.Width = Me.ScaleWidth - 200End SubPrivate Sub f111_Click(Index As Integer) Select Case IndexCase 0Text1.FontName = "宋体"Case 1Text1.FontName = "楷体_GB2312"Case 2Text1.FontName = "黑体"End SelectEnd SubPrivate Sub f131_Click(Index As Integer) Dim s As IntegerFor s = 0 To 2f131(s).Checked = FalseNext sSelect Case IndexCase 0Text1.FontSize = 12f131(0).Checked = TrueCase 1Text1.FontSize = 18f131(1).Checked = TrueCase 2Text1.FontSize = 24f131(2).Checked = TrueEnd SelectEnd SubPrivate Sub Form_Load()Text1.FontSize = 12End SubPrivate Sub Form_Resize()rehwEnd SubPrivate Sub menuabout_Click()MsgBox "本程序1.0版", vbOKOnly, "一个具有菜单的程序" End Sub弹出式菜单弹出式菜单:上下文菜单、快捷菜单、右键菜单为某对象设计弹出式菜单的步骤:1:在菜单编辑器中设计弹出式菜单,然后将顶级菜单设置为不可见。

第16章-通用对话框

第16章-通用对话框

第16章通用对话框前面介绍了Windows窗体应用程序常见的一些操作,如自定义菜单、创建工具栏、SDI和MDI应用程序及常见控件的使用。

本章将介绍Windows窗体中另一类常用的对话框。

在Windows系统中,应用程序如果需要用户选择一个文件或者文件夹,通常会弹出一个对话框用于与用户交互和检索信息。

简言之,对话框就是将其FormBorderStyle 枚举属性设置为FixedDialog的窗体。

您可以使用Windows窗体设计器构造自己的自定义对话框。

可以通过添加控件(例如Label、Textbox和Button)来自定义对话框以满足特定需要。

.NET Framework提供了对话框控件来快速创建对话框。

常用的控件有“打开文件”对话框和消息框等,也可修改它以适合自己的应用程序。

关键技术点学习表16.1 消息框当用户想知道程序运行过程中的相关信息时,可以使用消息框MessageBox来获取信息。

MessageBox是一个预定义对话框,在C#中使用时,都是用MessageBox对象的Show方法显示的。

MessageBox对象是命名空间Systeml.Windows.Forms的一部分,Show是一个静态方法,不需要基于MessageBox类的对象创建事例,就可以使用方法,另外,Show方法是可以重载的,具有很多不同参数的形式。

1.其语法格式一般形式如下:【格式】DialogResult Dir = MessageBox.Show(text,caption,button,icon,defaultbutton,option);【功能】弹出一个消息框,显示相关信息。

【说明】(1)Text:设置消息对话框中的提示文本语句,必须是string类;(2)Caption:可选参数,设置消息对话框的标题,和Text一样,必须是String类;(3)Button:可选参数,设置消息对话框中显示哪些按钮。

(4)Icon:可选参数,设置消息对话框中显示哪个图;(5)Defaultbutton:可选参数,设置消息对话框哪个按钮是默认激活;(6)Option:可选参数,为消息对话框设置一些特殊的选项,如文本对齐方式,指定阅读顺序,是否向系统日志写信息。

Windows通用对话框

Windows通用对话框

1.3 字体对பைடு நூலகம்框 字体对话框如下图所示。
利用字体对话框类CfontDialog获取字体信息的一般代码如下:
1.4 打印对话框
打印对话框CPrintDialog类可以为应用程序提供一个标准的打印 环境。但在建立CprintDialog类对象时,需要指定是要作为“打印” 对话框还是“打印设置”对话框。如下图所示 。
VC++程序设计基础
Windows通用对话框
1.1 文件对话框
文件对话框类CFileDialog允许用户打开或者保存 一个文件。文件对话框如下图所示。
利用文件对话框取得一个文件的路径名的一 般代码如下 :
1.2 颜色对话框
颜色对话框类为CColorDialog,该对话框如下图所示。
从颜色对话获取选定颜色的一般代码如下:
利用打印对话框设置打印页数的一般代码如下:
VC++程序设计基础

通用对话框

通用对话框
二、通用对话框
主要内容
字体对话框(FontDialog类) 字体对话框(FontDialog类) 颜色对话框(ColorDialog类) 颜色对话框(ColorDialog类) 浏览文件夹对话框(FolderBrowserDialog类) 浏览文件夹对话框(FolderBrowserDialog类) 打开文件对话框(OpenFileDialog类) 打开文件对话框(OpenFileDialog类) 保存文件对话框(SaveFileDialog类) 保存文件对话框(SaveFileDialog类)
ColorDialog
使用一般步骤
显示颜色对话框并返回所选颜色 if(dlg.ShowDialog()==DialogResult.OK) { lblResult.BackColor=dlg.Color; } 说明:用户所选的颜色保存在Color属性中。
FolderBrowserDialog
使用一般步骤
编写SaveFile方法实现另存为功能
priavte void SaveFile(string fileName) { try{ Stream stream=File.OpenWrite(fileName); StreamWriter writer=new StreamWriter(stream); writer.Write(textBox1.Text); } catch(IOException ex) { MessageBox.Show(ex.Message); } }
对话框类的继承图
monDialog
FileDialog
FontDialog
ColorDialog
PageSetupDialog
PrintDialog
OpenFileDialog

通用对话框专题知识

通用对话框专题知识

ofn.lpstrCustomFilter = NULL ;
ofn.nMaxCustFilter = 0 ;
ofn.nFilterIndex
=1;
ofn.lpstrFile
= NULL ;
ofn.nMaxFile
=0;
ofn.lpstrFileTitle = NULL ;
ofn.nMaxFileTitle
default: return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
【例】创建一种对话框,其中有“文件”(包括“新建”、“打开”、“另存为 ”、“页面设置”、“打印”和“退出”等选项)、“编辑”(包括“字体”和 “颜色”选项)和“帮助”菜单,选择“文件”菜单中旳“打开”选项时,弹出 “打开”通用对话框,选择“另存为”选项时,弹出“另存为”对话框;在“ 编辑”菜单中,选择“字体”时,弹出“字体”通用对话框,选择“颜色”选 项时,弹出“颜色”通用对话框。
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{ static char lpstrFileName[] = "";
static COLORREF clref[16]={0x00ff0000};
switch(iMessage)
case IDM_CLOSE: break;
case IDM_EXIT:
SendMessage(hwnd,WM_DESTROY,0,0); break;
case IDM_ABOUT:
MessageBox(hwnd,"通用对话框示例","有关",MB_OK); break;

通用对话框学习

通用对话框学习

通用对话框学习一:OpenFileDialog(2011-12-21 17:19:51)转载▼分类:标签:it在进行WinForm程序的开发时,经常会有提示用户输入特定的信息,但是对于常见的任务,例如,打开和保存文件,可以使用预先编写好的对话框类,而不是定制的对话框。

对话框是一个在另一个窗口中显示的窗口,在继续执行程序流之前,可以让用户在对话框中输入一些数据。

通用对话框常常用于从用户处获取一般性的信息,大多数应用程序都需要它,例如输入文件名,它是Windows操作系统的一部分。

除了PrintPreviewDialog外,其他的对话框都派生子抽象基类CommonDialog。

CommonDialog定义了一些方法和事件,他们对于所有的对话框类来说都是通用的。

通用方法:通用的事件:abstract bool RunDialog ,因此它的继承类均需要实现这个方法。

这次主要学习OpenFileDialog类的使用。

OpenFileDialog类是一个sealed类,因此只能实例化。

MSDN解释“提示用户打开文件。

无法继承此类。

”使用此类课检查某个文件是否存在并打开该文件。

ShowReadOnly属性确定是否在对话框中显示只读复选框,ReadOnlyChecked 属性指示是否选中只读复选框。

它有很多的属性,下面通过一个例子来了解一些属性的使用。

新建一个WinForm程序,有两个控件,button控件和一个textbox控件,事先在D盘建一个文本文档Test.txt,在里面任意添加内容。

界面如下:对于button的点击事件,编写如下的代码:ODF的使用private void button1_Click(object sender, System.EventArgs e){OpenFileDialog openFileDialog1 = new OpenFileDialog();openFileDialog1.InitialDirectory = "d:\\";openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";openFileDialog1.FilterIndex = 1;openFileDialog1.RestoreDirectory = true;if (openFileDialog1.ShowDialog() == DialogResult.OK){textBox1.Clear();using(StreamReader read = new StreamReader(openFileDialog1.FileName,Encoding. Default)){string line;while ((line=read.ReadLine())!=null){textBox1.AppendText(line);}}}}复制代码打开的文件对话框的一些属性时可以进行设置的,比如打开什么路径下的文件,可以对文件夹中的文件进行筛选。

【Windows编程】系列第八篇:通用对话框

【Windows编程】系列第八篇:通用对话框

【Windows编程】系列第⼋篇:通⽤对话框上⼀篇我们学习了,本篇来了解⼀下通⽤对话框的使⽤。

Windows系统之所以是⽬前最流⾏的桌⾯系统,也是因为Windows有⼀套标准化,统⼀友好的交互界⾯,⽐如菜单、⼯具栏、状态栏以及各个控件。

当然除了这些单独的控件之外,对于像⽂件打开、保存对话框,字体对话,颜⾊对话框等对于Windows本⾝会⽤到,在很多第三⽅的应⽤程序中也会⽤到。

因此微软公司也早就清楚这种现实情况会存在,所以Windows把这种常见的公共对话就做了统⼀的接⼝函数,供Windows⾃⼰和第三⽅开发者使⽤。

Windows提供的公⽤对话框在不同的版本有所不⼀样,但常见的公⽤对话框有:颜⾊选择对话框、打开⽂件对话框、保存⽂件对话框、字体选择对话框、查找对话框、替换对话框、打印对话框以及打印设置对话框等。

本篇以最常见的⽂件打开/保存对话框、字体对话框、颜⾊对话框为例,来学习如何创建这些对话框,其他的对话框使⽤⼤同⼩异,且在MSDN上基本都有使⽤实例。

要使⽤公⽤对话框函数,需要包含commdlg.h头⽂件,相关的数据结构和函数定义都在该头⽂件中定义。

⽂件打开对话框⽂件打开对话框主要⽤于选择需要的⽂件,把选择的⽂件全路径名传给⽤户,⾄于取到⽂件全路径之后怎么操作完全是开发者⾃⼰决定。

也就是说它提供了⼀个在电脑中选择任何⽂件的公共操作接⼝。

API函数定义如下:BOOL GetOpenFileName(LPOPENFILENAME lpofn);参数lpofn的定义如下:typedef struct tagOFN {DWORD lStructSize;HWND hwndOwner;HINSTANCE hInstance;LPCTSTR lpstrFilter;LPTSTR lpstrCustomFilter;DWORD nMaxCustFilter;DWORD nFilterIndex;LPTSTR lpstrFile;DWORD nMaxFile;LPTSTR lpstrFileTitle;DWORD nMaxFileTitle;LPCTSTR lpstrInitialDir;LPCTSTR lpstrTitle;DWORD Flags;WORD nFileOffset;WORD nFileExtension;LPCTSTR lpstrDefExt;LPARAM lCustData;LPOFNHOOKPROC lpfnHook;LPCTSTR lpTemplateName;#if (_WIN32_WINNT >= 0x0500)void * pvReserved;DWORD dwReserved;DWORD FlagsEx;#endif // (_WIN32_WINNT >= 0x0500)} OPENFILENAME, *LPOPENFILENAME;该接⼝定义的各个参数成员请参考MSDN的详细解释,这⾥我们最常⽤到的⼏项如下:lpstrFilter:该参数⽤于设置打开或保存对话的⽂件格式过滤,⽐如下图中的⽂件过滤情景,相信所有的读者朋友都见过:lpstrFile:该参数⽤于保存选择结束后的选择⽂件。

通用对话框控件

通用对话框控件

通用对话框
.3 “字体”对话框
字体对话框是Action为4时的通用对话框,如下图所示,提 供用户选择字体、字号及字体样式等。 字体对话框重要的属性有:Color, FontName, FontSize, FontBold FontItalic , FontStrikethru, FontUnderline, Max等.
.1 “打开”/“另存为”对话框
DialogTiltle FileName InitDir Filter FilterIndex DefaultExt
属性 1 FileName(文件名称)属性:在程序中可用该属性值设 置或返回用户所选定的文件名(包含路径) 2 FileTitle(文件标题)属性:在程序中可用该属性值设 置或返回用户所选定的文件名(不包含路径)
…………………………... End Sub
.4 “打印”对话框 打印对话框是当Action为5时的 通用对话框,是一个标准打印对话 窗口界面,如右图。 属性 FromPage:整型,起始页号 Topage:整型,终止页号 Copies:整型,打印份数 如果打印驱动程序不支持多份 打印,该属性有可能始终返回 1。
7 . CancelError 属性:逻辑型值,表示用户在与对话
框进行信息交换时,按下“取消”按钮时是否产生出错信息。
例7-10 设计一个简单图片查看器
通用对话框
.2 “颜色”对话框
颜色对话框是当Action值为3时的通用
对话框,如右图。 重要属性 Color:用来返回或设置选定的颜色。 例10.3 例 中“颜色...”按钮的事件过 程 Private Sub cmdColor_Click() CommonDialog1.Action = 3 „打开颜对话框 Text1.ForeColor = CommonDialog1.Color End Sub

公用对话框

公用对话框

公用对话框在使用Windows的过程中,用户经常会遇到一些常用的有特定用途的对话框。

例如,当选择File->Open,会弹出一个文件选择的对话框,用户可以在其中选择想要打开的文件。

象文件选择这样的对话框,使用的非常普遍,因此Windows系统本身提供了对该对话框的支持,用户不必自己设计文件选择对话框。

与文件选择对话框类似的还有颜色选择、字体选择、打印和打印设置以及正文搜索和替换对话框。

这五种对话框均由Windows支持,被称为公用对话框。

MFC提供了一些公用对话框类,它们均是CDialog类的派生类,封装了公用对话框的功能。

表5.6列出了MFC的公用对话框类。

表5.6 公用对话框类通用对话框类用途CColorDialog选择颜色CFileDialog选择文件名,用于打开和保存文件CFindReplaceDialog正文查找和替换CFontDialog选择字体CPrintDialog打印和打印设置通用对话框类使用方便,读者只需知道怎样创建对话框和访问对话框的数据,不必关心它们的内部细节。

5.6.1 CColorDialog类CColorDialog类用于实现Color(颜色选择)公用对话框。

Color对话框如图5.12所示,在Windows的画板程序中,如果用户在颜色面板的某种颜色上双击鼠标,就会显示一个Color 对话框来让用户选择颜色。

图5.12 Color对话框Color对话框的创建与一般的对话框没什么两样:首先是在堆栈上构建一个CColorDialog 对象,然后调用CColorDialog::DoModal( )来启动对话框。

CColorDialog的构造函数为CColorDialog( COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd* pParentWnd = NULL );参数clrInit用来指定初始的颜色选择,dwFlags用来设置对话框,pParentWnd用于指定对话框的父窗口或拥有者窗口。

公用对话框

公用对话框

公用对话框公用对话框Windows标准公用对话框(CommonDialog):【打开】、【保存】、【颜色】、【字体】、【文件夹浏览】等。

公用对话框控件1 OpenFileDialog【打开】对话框(OpenFileDialog)用于从磁盘打开一个或者多个文件,其的常用的属性和方法如下。

说明:为了方便介绍OpenFileDialog的常用属性和方法,假定有一个名为odlgFile的【打开】对话框。

1)FileName属性OpenFileDialog的FileName属性表示第一个在对话框中显示的文件或用户选择的最后一个文件,代码示例如下:odlgFile.FileName = "Program";2)Filter属性OpenFileDialog的Filter属性是对话框中的文件筛选器,Filter属性用于设置打开或保存的文件类型,代码示例如下:odlgFile.Filter = "cs文件|*.cs|所有文件|*.*";3)DefaultExt属性OpenFileDialog的DefaultExt属性表示文件默认的扩展名,如果没有给出扩展名,则系统自动使用DefaultExt属性设置的扩展名为文件的扩展名。

设置时一般使用属性窗口,也可以使用代码,代码示例如下:odlgFile.DefaultExt= ".cs";4)InitialDirectory属性OpenFileDialog的InitialDirectory属性用于设置对话框的初始目录,使用代码设置该属性的示例如下:odlgFile.InitialDirectory = "C:\\";5)MultiSelect属性OpenFileDialog的MultiSelect属性用于确定是否可以选择多个文件,值为True时可以选择多个文件,值为False时只能选择一个文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

表5.6
字体对话框常用成员函数
成员函数 DoModal GetCurrentFont GetFaceName GetStyleName GetSize GetColor GetWeight IsStrikeOut IsUnderline IsBold IsItalic
功能描述 显示字体对话框 获取当前选定的字体名 获取选择字体的字体名称 获取选择字体的风格名称 获取选择字体的大小 获取选择字体的颜色 获取选择字体的磅数 字体是否具有删除线 字体是否具有下划线 字体是否加粗 字体是否倾斜
(9)为“替换”按钮处理单击事件,创建“替换”对话框。代码如下:
void CFindAndReplaceDlg::OnButton2() {
dlg = new CFindReplaceDialog; dlg->Create(FALSE,NULL); dlg->ShowWindow(SW_SHOW); find = FALSE; }
//创建文件并以写方式打开
m_RichEdit.GetWindowText(strText); //获得控件内文本
strcpy(write,strText);
file.Write(write,strText.GetLength()); //向文件中写入数据
file.Close();
//关闭文件
}
通过CFileDialog方法构造“另存为”对话框,使用GetPathName方法获得保存文件的路径,通过 GetWindowText方法获取Rich Edit控件中文本,再使用CFile类向文件中写入文本。 程序运行结果如图5.21所示。
long CFindAndReplaceDlg::OnFindReplace(WPARAM wParam, LPARAM lParam)
CString strText,repText; //声明字符串变量
strText = dlg->GetFindString(); //获得查找字符串
CString str;
//在编辑框中显示新的字符串 //获得查找字符串在编辑框文本中的位置 //选中查找或替换的字符串
说明:
使用GetWindowText方法获得控件中的显示文本,然后使用Find方法获得要查找字符串在文本中首次出现 的位置,判断当前是查找对话框还是替换对话框,如果是查找对话框则获得查找字符串的长度,否则获得替换 字符串的长度,最后根据首次出现位置和字符串长度选中字符串。
//构造文件打开对话框
CString strPath,strText="";
if(dlg.DoModal() == IDOK) //显示文件打开对话框
{
strPath=dlg.GetPathName(); //获得文件路径
}
CFile file(strPath,CFile::modeRead); //以只读方式打开文件
if(dlg.DoModal()==IDOK) //显示另存为对话框
{
strPath=dlg.GetPathName(); //获得文件路径
if(strPath.Right(4)!=".txt")
strPath+=".txt";
}
CFile file(_T(strPath),CFile::modeCreate|CFile::modeWrite);
//声明字符串变量 //获得查找字符串的长度 //获得编辑框中文本长度
//获得查找字符串在编辑框文本中的位置
//获得替换字符串右侧的字符串 //获得替换字符串
len = repText.GetLength();
rindex = len; str = left + repText + right; //组合成新的字符串 m_RichEdit.SetWindowText(str);
//声明字符串变量
m_RichEdit.GetWindowText(str);
//获得编辑框中是文本
if(dlg->ReplaceCurrent()) //判断是否进行替换
find = FALSE; //进行替换
else
find = TRUE; //进行查找
int len;
//声明整型变量
if(dlg->ReplaceAll()) //判断是否全部替换 repText = dlg->GetReplaceString();
static UINT WM_FINDMESSAGE = RegisterWindowMessage(FINDMSGSTRING);
(6)在对话框的消息映射部分添加如下映射宏。
ON_REGISTERED_MESSAGE(WM_FINDMESSAGE, OnFindReplace )
(7)添加WM_FINDMESSAGE消息的处理函数,用于实现查找和替换操作。代码如下:
功能描述 是否进行查找下一个字符串 在登记消息句柄中获得FINDREPLACE结构 获得当前找到的字符串 获得当前替换的字符串 对话框是否终止 是否查找精确匹配的字符串 是否查找完全匹配的字符串 是否替换所有找到的字符串 是否替换当前字符串 是否向下查找
【例5.2】 下面介绍如何使用查找/替换对话框,具体操作步骤如下。 (1)创建一个基于对话框的应用程序。 (2)向对话框中添加一个Rich Edit控件和两个按钮控件,设置Rich Edit控件具有滚动条和允许多行输入。 (3)为Rich Edit控件添加变量m_RichEdit,要使用Rich Edit控件必须在显示对话框以前调用 AfxInitRichEdit函数。 (4)在主窗口的头文件中声明一个CFindReplaceDialog类的对象dlg和一个CString类型变量find。 (5)定义一个新消息WM_FINDMESSAGE。代码如下:
}
通过CFileDialog方法构造“打开”对话框,使用GetPathName方法获得打开文件的路径,再使用CFile类读 取文件的内容,通过SetWindowText方法在Rich Edit控件中显示出来。
(5)为“另存为”按钮处理单击事件,创建“另存为”对话框。代码如下:
void COpenAndSaveDlg::OnButton2()
图5.21 文件对话框应用
查找编辑框中的文本
在使用查找/替换对话框前,需要在当前窗口类中添加ON_REGISTERED_MESSAGE消息映射宏,用于设置回调 函数以处理查找或替换行为。查找/替换对话框的常用成员函数如表5.5所示
表5.5
查找/替对话框常用成员函数
成员函数 FindNext GetNotifier GetFindString GetReplaceString IsTerminating MatchCase MatchWholeWord ReplaceAll ReplaceCurrent SearchDown
//创建查找对话框 //显示查找对话框
//创建替换对话框 //显示替换对话框
(10)运行程序,效果如图5.22所示。 图5.22 查找\替换对话框应用
获取字体信息
利用字体对话框,用户可以方便地设置控件的字体,省去了调用CFont的CreateFont方法的麻烦。字体对话 框的常用成员函数如表5.6所示
【例5.1】 下面通过一个实例来演示文件对话框的创建和使用,程序设计步骤如下。
(1)创建一个基于对话框的应用程序。
(2)向对话框中添加一个Rich Edit控件和两个按钮控件,设置Rich Edit控件具有滚动条和允许多行输入。
(3)为Rich Edit控件添加变量m_RichEdit,要使用Rich Edit控件必须在显示对话框以前调用AfxInitRichEdit 函数。
Windows通用对话框
本讲大纲:
1.获取磁盘中的文 2.查找编辑框中的文本 3.获取字体信息 4.获取打印机设备上下文 5.设置打印纸大小
获取磁盘中的文件
在开发程序时,当用户需要从磁盘中选择一个文件或者将数据保存到磁盘文件时,需要使用文件对话框。 文件对话框的常用成员函数如表5.4所示
表5.4
文件对话框常用成员函数
{
CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"All Files(*.*)|*.*| |",AfxGetMainWnd());
//构造另存为对话框
CString strPath,strText="";
char write[1000];
char read[1000];
file.Read(read,1000);
//读取数据
for(int i=0;i<file.GetLength();i++)
{
strText += read[i];
file.Close();
//关闭文件
m_RichEdit.SetWindowText(strText); //显示文件内容
if(ret < 0)
return 1;
if(!degree)
//判断是否为第一次替换
index = str.Find(strText,nindex); //获得查找字符串在编辑框文本中的位置
else if(nindex-rindex >= 0) //判断起始查找位置是否小于0
index = str.Find(strText,nindex-rindex);
else
{
nindex = rindex; //设置起始查找位置
return 1;}ຫໍສະໝຸດ degree = TRUE;
相关文档
最新文档