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++程序设计基础
  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;
相关文档
最新文档