第16章-通用对话框

第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:可选参数,为消息对话框设置一些特殊的选项,如文本对齐方式,指定阅读顺序,是否向系统日志写信息。

【使用说明】

(1)MessageBox的参数必须按以上顺序输入。

(2)如果使用MessageBox.Show显示消息对话框,不返回任何值,语法为:

MessageBox.Show(text,caption,buttons,icon);

2.Button各枚举常量及意义如表16-1所示。

表16-1 Buttons各枚举常量及意

3.

表16-2 Buttons各枚举常量及意

16.1.1 MessageBox显示信息

【例16-1】MessageBox显示信息示例。

程序代码如下:

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace KeyEvent

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

label1.Text = "";

label2.Text = "";

}

private void Form1_MouseDown(object sender, MouseEventArgs e) {

Label1.Text = e.Button.ToString() + "键被按下了";

MessageBox.Show(e.Button.ToString() + "键被按下了", "MessageBox示例", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);

}

private void Form1_MouseUp(object sender, MouseEventArgs e)

{

Label2.Text = e.Button.ToString() + "键被放开了";

}

}

}

【程序说明】

(1)在窗体上按下对应的鼠标键时,同时在标签和MessageBox上显示相关提示说明。

(2)设置了消息框的标题,并采用了button和icon选项设置了消息框外观。

(3)程序的运行结果如图16-1所示。

图16-1 运行效果图

16.1.2 MessageBox接受用户输入

消息框MessageBox还可以接受输入。MessageBox类的Show方法可根据用户选择的不同按钮,返回相应的按钮值,用于确定用户所做选择的值。

可以用整数的形式存储此值;也可使用if语句,比较显示消息框时返回的值。在这种情况下,可以设置Show方法的button参数和icon,以便显示适当的按钮向用户询问信息。

以一个具体的例子来说明这个问题。程序代码如下:

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace KeyEvent

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

label1.Text = "";

label2.Text = "";

}

private void Form1_MouseDown(object sender, MouseEventArgs e) {

label1.Text = e.Button.ToString() + "键被按下了";

if (MessageBox.Show(e.Button.ToString() + "键被按下了", "MessageBox示例", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)

{

label2.Text = "用户所按键为OK键!";

}

}

private void Form1_MouseUp(object sender, MouseEventArgs e)

{

label2.Text = e.Button.ToString() + "键被放开了";

}

}

}

【程序说明】

(1)MessageBox消息框弹出来以后,用户在MessageBox上按下正确的按钮选项以后,标签上才会有提示信息,否则程序不执行。

(2)程序的运行结果如图16-2所示。

图16-2 运行效果图

16.2 对话框的使用

CommonDialog是对话框的基类,所以所有对话框的使用方式都是类似的。公共实例方法是ShowDialog()。该方法调用受保护的RunDialog()实例方法来显示对话框,并利用用户与对话框交互操作的信息,最终返回一个DialogResult实例。

常用对话框如下:

(1)文件对话框(FileDialog) 它又常用到两个:打开文件对话框(OpenFileDialog),保存文件对话(SaveFileDialog)。

(2)字体对话框(FontDialog)。

(3)颜色对话框(ColorDialog)。

(4)浏览文件夹对话框(FolderBrowserDialog)。

(5)打印预览对话框(PrintPreviewDialog)。

(6)页面设置(PrintDialog)。

(7)打印对话框(PrintDialog)。

如果要使用以上对话框,可以利用相应的对话框控件向窗体添加对象。在程序运行时显示对话框,可以使用ShowDialog方法。它的一般形式为:

【格式】DialogObject.ShowDialog();

【说明】所有的这些对话框都封装了一个Windows通用对话框,使该对话框可用于.NET应用程序。PrintPreviewDialog是一个例外,因为它把自己的元素添加到Windows 窗体上,控制打印预览,所以它并不是一个真正的对话框。

不同对话框所适用的场合:

(1)OpenFileDialog可以让用户选择和浏览要打开的文件。这个对话框可以配置为只允许选择一个文件,也可以选择多个文件。

(2)SaveFileDialog使用户可以为要保存的文件指定一个文件名和路径。

(3)PrintDialog用于选择打印机,并设置打印选项。

(4)PrintPreviewDialog是让用户可以在屏幕上进行打印预览的一种方法,并有一些选项,如缩放等。

(5)FontDialog可以为用户列出所有已安装的Windows字体、字号和样式及各种字体的预览效果。以方便用户选择字体。

(6)ColorDialog类用于颜色的选择。

(7)FolderBrowserDialog可以让用户选择和创建目录。

16.3 文件对话框

OpenFileDialog和SaveFileDialog类派生自FileDialog抽象基类,该基类提供了对于打开和关闭文件对话框来说都相同的文件功能。

下面分别对这两个对话框进行介绍。

16.3.1 打开文件对话框(OpenFileDialog)

打开文件对话框(OpenFileDialog)是一个预先定义的对话框类,包括显示样式和方法等。它与Windows中常见的“打开文件”对话框相同。在Windows应用程序中可以将该组件用作简单的文件选择方案,快速创建用户所熟悉的应用程序。

1.OpenFileDialog控件的主要属性如表16-3所示。

表16-3 OpenFileDialog控件的主要属性

2.OpenFileDialog控件常用事件如表16-4所示。

表16-4 OpenFileDialog控件常用事件

3.OpenFileDialog的效果如图16-3所示。

图16-3 “打开文件”对话框

4.相关操作示例代码

private void button1_Click(object sender, System.EventArgs e)

{

Stream myStream;

OpenFileDialog openFileDialog1 = new OpenFileDialog();

openFileDialog1.InitialDirectory = "c:\\" ;

openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files

(*.*)|*.*" ;

openFileDialog1.FilterIndex = 2 ;

openFileDialog1.RestoreDirectory = true ;

if(openFileDialog1.ShowDialog() == DialogResult.OK)

{

if((myStream = openFileDialog1.OpenFile())!= null)

{

// Insert code to read the stream here.

myStream.Close();

}

}

}

16.3.2 保存文件对话框(SaveFileDialog)

保存文件对话框(SaveFileDialog)与Windows的“保存文件”相同。控件的使用有两种情况:一是保存;二是另存为。保存很简单,就是在文件已经打开的情况下的,

再把文件写一遍,在此主要介绍另存为的情况(SaveAs)。在使用SaveFileDialog控件时,程序员必须编写文件保存逻辑。

1.SaveFileDialog控件的属性如表16-5所示。

表16-5 SaveFileDialog控件的属性

2.SaveFileDialog事件如表16-6所示。

表16-6 SaveFileDialog事件

3.SaveFileDialog的效果如图16-4所示。

图16-4 “另存为”对话框

4.相关操作示例代码

private void button2_Click(object sender, EventArgs e)

{

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "文本文件|*.*|C#文件|*.cs|所有文件|*.*";

saveFileDialog.FilterIndex = 2;

saveFileDialog.RestoreDirectory = true;

if (saveFileDialog.ShowDialog() == DialogResult.OK)

{

if (saveFileDialog.ShowDialog() == DialogResult.OK)

{

string fName = saveFileDialog.FileName;

}

}

}

16.4 打印

对于打印,需要考虑打印机的选择、页面设置和如何打印多页面等。System.Drawing 命名空间中的类可以帮助完成这些任务,方便地在应用程序中打印文档。Windows窗体PrintDialog控件是预先配置的对话框,用于在Windows应用程序中选择打印机、选择要打印的页以及确定其他与打印相关的设置。可使用户能够打印文档的很多部分:全部打

印、打印选定的页范围或打印选定内容。可在Windows应用程序中使用它作为简单的解决方案,而不用配置自己的对话框。该控件包含打印、放大、显示一页或多页和关闭此对话框的按钮。

利用标准的Windows对话框,可以创建应用程序。PrintDialog从CommonDialog类继承,是标准Windows打印对话框。

1.PrintDialog的常用属性如表16-7所示。

表16-7 FontDialog的常用属性

属性作用

AllowPrintToFile 是否启用“打印到文件”复选框

AllowSelection 是否启用了页码范围选项按钮

AllowSomePages 是否启用“页”选项按钮

Document 用于获取PrinterSettings 的PrintDocument

PrinterSettings 修改的打印机设置

PrintToFile 是否选中“打印到文件”复选框

ShowHelp 是否显示“帮助”按钮

ShowNetwork 是否显示“网络”按钮

2.PrintDialog事件如表16-8所示。

Print Dialog事件

Print Dialog事件作用

HelpRequest当用户单击通用对话框中的“帮助”按钮时发生3.PrintDialog的效果如图16-5所示。

图16-5 “打印”对话框

4.程序代码如下:

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsPrint

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

this.printDialog1.Document = this.printDocument1;

}

private void 打印_Click(object sender, EventArgs e)

{

if (this.printDialog1.ShowDialog() == DialogResult.OK)

this.printDocument1.Print();

}

}

}

【程序说明】

(1)窗体上添加了一个将命令按钮,将其Name和Text属性都设置为“打印”。此按钮发生Click事件时显示打印对话框。添加了一个将打印文档类PrintDocumet。

(2)在.net环境中,要实现打印,就必定要用到PrintDocumet这个类,PrintDocument 属于System.Drawing.Printing这个名字空间,PrintDocument这个类是实现打印的核心代码。如果要实现打印,还必需首先构造PrintDocument对象添加打印事件,printDocument.PrintPage+=new PrintPageEventHandler (this.printDocument_PrintPage) (3)本例虽然能显示打印对话框,但是因为没有添加printDocument的PrintPage事件,所以还不能实现打印。

5.实现打印的PrintDocument打印事件

打印其实也是调用Graphics类的方法进行画图,下面这段代码给出了一个打印实现的PrintPage事件源码。相关操作代码如下所示:

private void printDocument1_PrintPage(object sender,

System.Drawing.Printing.PrintPageEventArgs e)

{

//当前的打印字体

Font font = new Font("Tahoma", 12, FontStyle.Underline);

//设置刷子

Brush bru = Brushes.Blue;

Pen pen = new Pen(bru);

pen.Width = 5;

//设置各边距

int nLeft = this.pageSetupDialog1.PageSettings.Margins.Left;

int nTop = this.pageSetupDialog1.PageSettings.Margins.Top;

int nRight =

this.pageSetupDialog1.PageSettings.Margins.Right;

int nBottom =

this.pageSetupDialog1.PageSettings.Margins.Bottom;

int nWidth =

this.pageSetupDialog1.PageSettings.PaperSize.Width - nRight - nLeft;

int nHeight =

this.pageSetupDialog1.PageSettings.PaperSize.Height - nTop - nBottom;

//打印各边距

e.Graphics.DrawLine(pen, nLeft, nTop, nLeft, nTop + nHeight);

e.Graphics.DrawLine(pen, nLeft + nWidth, nTop, nLeft + nWidth, nTop + nHeight);

e.Graphics.DrawLine(pen, nLeft, nTop, nLeft + nWidth, nTop);

e.Graphics.DrawLine(pen, nLeft, nTop + nHeight, nLeft + nWidth, nTop + nHeight);

//在离左边距,上边距的位置打印《c#习题集锦》

e.Graphics.DrawString("《c#习题集锦》", font, bru, nLeft + 20, nTop + 20);

}

【程序说明】

(1)窗体上添加了一个PageSetupDialog,主要用来设置页面大小,页边距等。

(2)PrintDocument可用于设置属性来描述有关打印的信息,并且可用于调用方法Print()或通过事件PrintPage来打印文档的组件。本例中使用PrintPage事件来实现页面设置和设置打印内容。PrintPage事件是实现打印的核心部分,必不可少。

16.5 打印预览

使用打印预览可以查看打印结果。Windows窗体中的PrintPreviewDialog控件是.NET 预先配置好的对话框,用于显示PrintDocument打印时的外观。可在Windows应用程序中使用它作为简单的解决方案,而不用配置自己的对话框。控件允许显示预先定义的对

话框,用户可以使用该对话框查看文档在打印时的样式,控件包含打印、放大、显示一页或多页和关闭此对话框的按钮。

该控件的主要属性是Document,用于设置要预览的文档。文档必须是PrintDocument 对象。若要显示此对话框,必须调用它的ShowDialog方法。

1.PrintPreviewDialog主要性如表16-9所示。

表16-9 PrintPreviewDialog常用事件

2.PrintPreviewDialog常用事件如表16-10所示。

表16-10 PrintPreviewDialog常用事件

3.PrintPreviewDialog的运行效果如图16-6所示。

图16-6 “打印预览”对话框

4.程序代码如下:

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsPrint

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

this.printPreviewDialog1.Document = this.printDocument1; }

private void 打印预览_Click(object sender, EventArgs e)

{

this.printPreviewDialog1.ShowDialog();

}

}

}

16.6 FontDialog和ColorDialog对话框

16.6.1 字体对话框(FontDialog)

在文字处理中,我们常用到字体对话框对文字进行格式设置。Windows窗体FontDialog组件是一个预配置的对话框,该对话框是标准的Windows“字体”对话框,用于公开系统上当前安装的字体。在Windows应用程序中将其用作简单的字体选择方案,而不是配置对话框。

默认情况下,该对话框显示字体、字体样式和字体大小的列表框;删除线和下划线等效果的复选框;脚本的下拉列表以及字体外观的示例。

1.字体对话框(FontDialog)的常用属性如表16-11所示。

表16-11 FontDialog的常用属性

2.字体对话框(FontDialog)的事件如表16-12所示。

表16-12 FontDialog的常用事件

3.字体对话框(FontDialog)的效果如图16-7所示。

图16-7 “字体”对话框

4.相关操作示例代码

private void fontDialogBTN_Click(o b j e c t sender,System.EventArgs e)

{

fontDialog fontDialog=new FontDialog();

fontDialog.Color = richTextBox1.ForeColor;

fontDialog.AllowScriptChange = true;

fontDialog.ShowColor = true;

if(fontDialog.ShowDialog() != DialogResult.Cancel)

richTextBox1.SelectionFont = fontDialog.Font;//将当前选定的文字改变字体

}

16..6.2 颜色对话框(ColorDialog)

Windows窗体ColorDialog组件是一个预先配置的对话框,它允许用户从调色板选择颜色以及将自定义颜色添加到该调色板。此对话框与在其他Windows应用程序中看到的用于选择颜色的对话框相同。

1.颜色对话框(ColorDialog)的常见属性如表16-13所示。

表16-13 ColorDialog的常见属性

属性作用

AllowFullOpen 禁止和启用“自定义颜色”按钮

FullOpen 是否最先显示对话框的“自定义颜色”部份

ShowHelp 是否显示“帮助”按钮

Color 在对话框中显示的颜色

AnyColor 显示可选择任何颜色

CustomColors 是否显示自定义颜色

SolidColorOnly 是否只能选择纯色

2.颜色对话框(ColorDialog)的效果如图16-8所示。

图16-8 “颜色”对话框

3.相关操作示例代码

private void colorDialogBTN_Click(object sender,System.EventArgs e) {

ColorDialog colorDialog = new ColorDialog();

colorDialog.AllowFullOpen=true;

colorDialog.FullOpen=true;

colorDialog.ShowHelp=true;

colorDialog.Color=Color.Black;

colorDialog.ShowDialog();

richTextBox1.SelectionColor=colorDialog.Color;

16.7 浏览文件夹对话框

1.浏览文件夹对话框(FolderBrowserDialog)的常见属性如表16-14所示。

表16-14 FolderBrowserDialog的常见属性

属性作用

SelectPath 设置选择路径

Description 决定目录树上要显示的提示信息

ShowNewFolderButton 是否显示“新建文件夹”按钮

2.浏览文件夹对话框(FolderBrowserDialog)的效果如图16-9所示。

图16-9 “浏览文件夹”对话框

3.相关操作示例代码

private void button1_Click(object sender, EventArgs e)

{

folderBrowserDialog1.SelectedPath = "c:\\";

folderBrowserDialog1.ShowNewFolderButton = true;

folderBrowserDialog1.Description = "请选择目录:";

folderBrowserDialog1.ShowDialog();

Text = folderBrowserDialog1.SelectedPath;

}

16.8 小结

本章介绍了如何在应用程序中使用对话框类:如何打开和保存文件,如何给应用程序添加打印功能等。

本章使用的对话框有:

(1)文件对话框(FileDialog)。

(2)打印对话框(PrintDialog)。

(3)打印预览对话框(PrintPreviewDialog)。

(4)字体对话框(ColorDialog)和颜色对话框(FontDialog)。

(5)浏览文件夹对话框(FolderBrowserDialog)。

课外阅读─Windows窗体中的对话框

对话框用于与用户交互和检索信息,.NET Framework包括一些常用的预定义对话框。本章中列举的Windows窗体控件和组件就提供了标准的常用对话框,对于具体的应用程序来说,可以修改这些预定义的对话框以适合自己的应用程序。

简单地说,对话框就是FormBorderStyle枚举属性设置为FixedDialog的窗体。在Visual Studio中,完全可以通过使用Windows窗体设计器来构造自己的自定义对话框。即可以根据自己的具体需要,向自定义对话框中添加诸如Label、Textbox和Button之类的控件。

16.9 练习16

一、选择题

1.下列属性中,不是字体对话框(FontDialog)的属性。

A.ShowColor B.Font

C.AllowFullOpen D.FontMustExist

2.下列属性中,不是对话框都具有的属性。

A.Container B.Site C.Tag D.Color 3.设置当前文件名筛选器字符串,该字符串决定对话框的“另存为文件类型”或“文件类型”框中出现的选择内容。应该使用的属性是。

A.Filter B.FilterIndex C.Multiselect D.Title 4.要获取对话框中所有选定文件的文件名,应该使用的属性是。

A.DefaultExt B.FilterIndex C.FileNames D.Title 5.要在颜色对话框(ColorDialog)上启用“添加到自定义颜色”按钮,应该对属性进行设置。

A.AllowFullOpen B.FullOpen

C.AnyColor D.CustomColors

6.颜色对话框(ColorDialog)要显示“自定义颜色”,应该对属性进行设置。

A.AllowFullOpen B.FullOpen

C.AnyColor D.CustomColors

6.7 Windows通用对话框

任务六对话框应用程序设计 6.7 Windows通用对话框 Windows通用对话框是由操作系统提供的任何应用程序都可以获得的对话框。在VC++中,对这些对话框进行了封装,使用户在开发程序时可以方便的调用这些对话框。 6.7.1 使用“文件”对话框打开和保存文件 主程序名:FileDialog 1、添加两个按钮控件,一个编辑框控件,两个静态文本控件

2、为控件关联变量 3、编辑“打开”按钮,编辑程序 void CFileDialogDlg::OnOpen() { // TODO: Add your control notification handler code here CFileDialog

dlg(TRUE,NULL,NULL,OFN_HIDEREADONL Y|OFN_OVERWRITEPROMPT, "All Files(*.TXT)|*.TXT||",AfxGetMainWnd()); CString strPath,strText=""; if(dlg.DoModal() == IDOK) { strPath = dlg.GetPathName(); m_OpenPath.SetWindowText(strPath); CFile file(strPath,CFile::modeRead); char read[10000]; file.Read(read,10000); for(int i=0;i

第六章 对话框控件

学习目标: ?掌握CommonDialog。 ?掌握文件操作相关的对话框。 ?理解打印对话框。 6.1对话框: 对话框是一种用户界面接口,用于同用户进行交互,完成一些特定的任务,简单的对话框有对用户操作进行提示的对话框,对重要操作要求用户进行决定的交互对话框等。 这类任务能被独立出来,作为通用的交互处理过程。这些能被独立出来作为通用交互过程的任务常见如下一些: (1)文件选取。 (2)保存设置。 (3)路径选取。 (4)字体选取。 (5)颜色选取。 (6)打印设置。 (7)打印预览框。 在.NET中这些组件是在monDialog的基础上发展而来。

6.1.1Common pialog: CommonDialog是.NET中对话框组件的基础,它是System.Windows.Forms命名空间下的一个抽象类,在程序中不能直接使用。 CommonDialog公开了2个方法和一个属性,即:ShowDialog()/ShowDialog(IWin32Window)方法和Reset()方法以及Tag属性。 ShowDialog是用于显示对话框。ShowDialog()有一个重载形式:ShowDialog(IWin32Window),IWin32Window在这里指一个窗口句柄,在调用中,这个参数应该被赋值成要显示的对话框的父窗体。 注意:句柄是Window中的一个常用词语,可以把它理解为一个标识符号,只是这个标识符号是一个数字。相应的窗口句柄就是窗口的标标识符。 Reset方法: 使用过程中可能改变初始值,当需要让所有的初值回到原来的状态时,调用Reset能达到目的。 Tag属性: Tag没有具体含义,它可以让用户在对话框控件中存储、维护自己的数据。这个数据由用户自己的代码解释。 对话框的返回值(ShowDialog的返回值): 对话框通过调用ShowDialog()调用后,返回一个类型为DialogResult 值,其中DialogResult.OK指出用户成功完成了操作,成功选取了文

在CFileDialog对话框中添加控件

在CFileDialog对话框中添加控件 关键字:CFileDialog扩展类,OFNHookProc 需求描述:昨天遇到一个用户需求,在CFileDialog对话框(SAVE)中加入一个Check , 一个Edit,一个Spin控件,dlg.Domodal()==IDOK返回时要同时获得Edit控件中的数据. 实现方法:如果只需要控制控件,用方法一即可,但如果需要获取数据,则只能用方法二。我最终用的就是方法二. 方法一: 首先查找MSDN关于CFileDialog扩展的实现描述,上网查到实现预览图片式的CFILEDIALOG的例子。按照其思路从CFileDialog派生了一个新的类CFileDialogEX. 在类中添加以下代码 #define WM_CHECKZOOMIN WM_USER+1856 public: BOOL bZoomIn; UINT nMul; //[1~100] //前置声明--------------- BOOL NEAR CALLBACK HandleNotify(HWND hDlg, LPOFNOTIFY pofn); UINT_PTR CALLBACK OFNHookProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); // CFileDialogEx IMPLEMENT_DYNAMIC(CFileDialogEx, CFileDialog) CFileDialogEx::CFileDialogEx(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) : CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd) { //这个四个常用标识位 m_ofn.Flags |= OFN_ENABLETEMPLATE |OFN_HIDEREADONLY |OFN_EXPLORER; //OFN_EXPLORER | OFN_ENABLEHOOK

vb通用对话框

CommonDialog 控件提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作。通过运行Windows 帮助引擎控件还能显示帮助。 CommonDialog 控件在Visual Basic 和Microsoft Windows 动态连接库Commdlg.dll 例程之间提供了接口。为了用该控件创建对话框,必须要求Commdlg.dll 在Microsoft Windows \System 目录下。 为了在应用程序中使用CommonDialog 控件,应将其添加到窗体上并设置属性。控件显示的对话由控件的方法决定。运行时,调用相应方法后将显示对话框或执行帮助引擎;设计时在窗体上将CommonDialog 控件显示成一个图标。此图标的大小不能改变。 CommonDialog 控件可以显示如下常用对话框: “打开” “另存为” “颜色” “字体” “打印” 注意无法指定对话框显示在什么地方。 要使用CommonDialog 控件 若未添加CommonDialog 控件,则应从“工程”菜单中选定“部件”,将控件添加到工具箱中。在标记对话的“控件”中找到并选定控件,然后单击“确定”按钮。 单击工具箱中的“CommonDialog”控件并在窗体上绘制该控件。 在窗体上绘制CommonDialog 控件时,控件将自动调整大小。象Timer 控件一样,CommonDialog 控件在运行时不可见。 运行时,请适当使用下表所列方法显示需要的对话。方法显示的对话 ShowOpen 打开 ShowSave 另存为 ShowColor 颜色 ShowFont 字体 ShowPrinter 打印 ShowHelp 调用Windo ws“帮助” 示例代码: 下例显示“打开”对话框然后在信息框中显示所选的文件名: Private Sub Command1_Click()

MFC对话框程序中的各组件常用方法

MFC对话框程序中的各组件常用方法: Static Text: 将ID号改成唯一的一个,如:IDC_XX,然后进一次类向导点确定产生这个ID,之后更改Caption属性: GetDlgItem(IDC_XX)->SetWindowText(L"dsgdhfgdffd"); 设置字体: CFont *pFont = new CFont; pFont->CreatePointFont(120,_T("华文行楷")); GetDlgItem(IDC_XX)->SetFont(pFont); Edit Control: 设置文本: SetDlgItemText(IDC_XX,L"iuewurebfdjf"); 获取所有输入: 建立类向导创建一个成员变量(假设是shuru1,shuru2……)类型选value,变量类型任选。 UpdateData(true); GetDlgItem(IDC_XX)->SetWindowText(shuru1); 第一句更新所有建立了变量的对话框组件,获取输入的值。第二句将前面的IDC_XX的静态文本内容改为shuru1输入的内容。 若类型选用control: 1.设置只读属性: shuru1.SetReadOnly(true); 2.判断edit中光标状态并得到选中内容(richedit同样适用) int nStart, nEnd; CString strTemp; shuru1.GetSel(nStart, nEnd); if(nStart == nEnd) { strTemp.Format(_T(" 光标在%d" ), nStart); AfxMessageBox(strTemp); } else { //得到edit选中的内容 shuru1.GetWindowText(strTemp); strTemp = strTemp.Mid(nStart,nEnd-nStart); AfxMessageBox(strTemp); } 其中nStart和nEnd分别表示光标的起始和终止位置,从0开始。strTemp.Format 方法用于格式化字符串。AfxMessageBox(strTemp)显示一个提示对话框,其内容是字符串strTemp。 strTemp = strTemp.Mid(nStart,nEnd-nStart)返回一个被截取的字符串,从nStart开始,长度为nEnd-nStart。如果nStart == nEnd说明没有选择文本。 注:SetSel(0,-1)表示全选;SetSel(-1,i)表示删除所选。

vb文件菜单通用对话框

第7章第10章 一、内部文件控件 二、通用对话框 三、文件的读写操作 四、菜单编辑器

一、内部文件控件 文件系统控件用来查看和选择文件的功能,这类控件有两种: ①VB内部标准的文件控件: 驱动器列表框(DriveListBox) 目录列表框(DirListBox) 文件列表框(FileListBox) ②另一种是Windows的通用对话框控件(CommonDialog),该控件是ActiveX控件,需要加载后才能使用。

驱动器 列表框 文件列表框 目 录 列 表 框

1.驱动器列表框(DriveListBox) ①功能:用来显示当前机器上的所有盘符。 ②Drive属性:设置或显示运行时选择的驱动器。 如:Drive1.Drive = “C”或 Drive1.Drive = “C:”或 Drive1.Drive = "C:\“均正确。 ③Change事件:选择一个新的驱动器或通过程 序代码改变Drive属性的设置时,都将引发驱动器列表框的Change事件发生。

【例1】窗体中有2个标签和1个驱动器列表框。程序运行时,将用户在驱动器列表框中所选驱动器名称显示在窗体的标签中。 Private Sub Form_Load() Label2.Caption = "选中的驱动器是" & Drive1.Drive End Sub Private Sub Drive1_Change() Label2.Caption = "选中的驱动器是" & Drive1.Drive End Sub 例1

2.目录列表框(DirListBox) ①功能:以根目录开始, 显示目录的层次结构。 ②Path属性:设置当前路径,只能在程序代码中设置。格式为目录列表框名称.Path[=“路径”]如:Dir1.Path=“c:\Windows” ③Change事件:在目录框发生变化时,会触发该事件。 【例2】窗体中有1个驱动器列表框、1个目录列表框和4个标签。程序运行时,将用户在驱动器列表框中所选驱动器的所有目录显示在目录列表框中,并将用户双击时所选中的目录显示在窗体下部的标签中。

【精品报告】常用中后台交互设计控件使用场景与规范总结

常用中后台交互设计控件使用场景与规范总结 最近刚完成平台安畅云 2.0 的改版设计,平台模块很多,经常存在很多类似的页面和组件,若不制定统一的规范和控件,则会导致很多重复的工作,大大降低产品的设计效率; 同时,平台的一致性也得不到保障。 所以,我们视觉、交互、前端的小伙伴们针对我们踩过的坑,大家认真总结和提炼出一个 符合公司定位的设计规范,统一公司项目的前端 UI 设计,规避不必要的设计差异和实现 成本,实现设计和前端资源的效率最大化。 此设计规范主要分享了中后台常用设计组件的定义、组成、使用场景及注意事项。 字体 概述 字体是界面设计中最基本的构成元素之一,用户通过文字来理解内容和完成任务,合适的 字体将大大提升用户的阅读体验及工作效率。在安畅云项目的字体使用中,为了使页面的 视觉层次更加清晰,我们从以下三方面来使平台的字体符合易阅读和美观的要求。 合理的使用不同的字重、字号和颜色来强调界面中需要突出的信息; 尽量使用单种字体,使用多种字体会让界面看起来零散和杂乱无章; 遵循 WCAG 2.0 标准(标准详情见 https:///Translations/WCAG20- zh/#visual-audio-contrast),字体在使用时与背景颜色的对比值满足无障碍阅读的最 低标准。 字体使用建议 中文字体优先级:PingFang SC、Hiragino Sans GB 、Microsoft YaHei(平台使用字体)英文字体优先级:Helvetica Neue、Helvetica、Arial(平台使用字体)

字号使用建议 行高使用建议 行高也是影响用户阅读体验的重要因素之一,我们查阅资料得知西文的基本行高通常是字号的 1.2em 左右,而中文因为字符复杂,所以中文行高需要更大。现在公认1.5em 至1.8em 之间会有一个比较好的视觉阅读效果。 安畅云项目行高计算公式:行高值=字号 x 1.5,例如:12 号字体的行高为 18px,14 号字体的行高为 21px。

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

1.什么是对话框?它分为哪两类?这两类对话框有哪些不同? 答:对话框是一种特殊的窗口,主要功能是输出信息和接收用户的输入。对话框分为有模式对话框和无模式对话框。当一个有模式对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。而无模式对话框打开时,用户可以同时打开其他窗口对象,操作完毕后,又可用鼠标或其他方式激活该窗口。 2.什么是对话框模板、对话框资源和对话框类? 答:对话框模板是一个描述对话框的内存结构,用于添加控件及其布局。对话框资源指快捷键、对话框、菜单、字符串、工具栏按钮、图表、版本信息等。对话框类用于实现对话框功能。 3.对一个对话框编程一般经过几个步骤? 答:1. 在资源编辑器中画对话框,添加控件,设定控件位置、大小、ID和其它属性; 2. 定义对话框回调函数,添加控件的事件处理函数; 3. 注册对话框函数 4、什么是控件?根据控件的性质可以将控件分为几类? 答:在Windows中所用的按钮控件是用来实现一种开与关的输入。 常见按钮类型:按键按钮、单选按钮、复选框按钮。 5.向对话框添加一个常用控件的方法有哪些?这些方法是否使用于ActiveX控件? 答:1、先点击控件,然后在对话框上单击, 2、先点击控件,然后在对话框上点住不放,画出像要的大小。 否。 6.什么是DDV/DDX技术?如何使用这种技术? 答:DDX(对话框数据交换)机制用来初始化对话框中的数据,并向应用程序返回数据,它使得用户向对话框加载对象数据和当对话框关闭时恢复其中的数据这两个过程自动化。 DDV(对话框数据验证有效性)机制用于将数据返回成员变量之前将数据的长度和范围有效化。 7.什么是空间的通知消息?它在编程中起哪些作用? 答:控件消息由按钮(BN_)、编辑框(EN_)、组合框(CBN_)和列表框(LBN_)等产生。控件通过向父窗口发送控件通知消息来表明发生了某种事件。

通用对话框与文件操作

第10讲通用对话框与文件操作 教学目标 1.掌握文本文件的读取与写入操作 2.掌握通用对话框的使用 重点、难点: 1.通用对话框的使用;(重) 2.数据的读写。(难) 提纲: 1.复习与作业点评 2.文件的读、写操作 3.消息框的使用MessageBox 4.通用对话框的使用OpenFileDialog、SaveFileDialog、FontDialog、ColorDialog 5.小结 6.作业 一、复习与作业点评 二、文件的读、写操作(幻灯片18~26) (一)流 流(Stream)是字节序列,对于流的操作是按照流中字节的先后顺序来进行的。提供一种向存储器写入数据和从存储器读取数据的方法。在读写文件时,不是直接操作文件,而是通过文件流的某些方法来实现文件的读写。流就好像是在计算机的输入/输出之间建立的一条通道,数据好像在这其中“流”动一样。 文件是静态的,流是动态的。要想访问文件,就要建立流对象(Stream)。 (二)读取文件 要从文本文件中读取数据,首先要使用System.IO.StreamReader类建立一个StreamReader对象:Dim 对象名称As New System.IO.StreamReader(路径和文件名,编码方式) 其次用StreamReader对象读取数据常用的方法来读取数据。 读取内容=对象名称.读取方法 StreamReader对象的常用的读取方法有: Read()方法:读取当前流中的下一个字符或下一组字符。 Readline()方法:从当前流中读取一行数据,并将数据作为字符串返回。

ReadtoEnd()方法:由文件当前位置开始读取数据,直到文件结束。 最后需调用close方法关闭StreamReader对象。 对象名称.Close 在文本框1中输入想要打开的文本文件路径及名称,单击“读出”命令按钮,在文本框2中显示文件内容。 (三)写入文件 要向文本文件中写入数据,首先建立写对象: Dim 对象名称As New System.IO.StreamWriter(路径和文件名,写入方式,编码方式) 对象名称.Write(要写入的数据)——写的方法 或:对象名称.WriteLine(要写入的数据) 对象名称.Close ——将写对象关闭 【例】读写文件(幻灯片25) 三、MessageBox消息框(幻灯片26~29) 消息框是预先设计好的预定义对话框,常用来在程序设计中输出简单的消息。可以通过Messagebox类的show方法来实现,语法格式如下: Messagebox.show(Prompt [,Title] [,Buttons] [,Icon]) 如:MessageBox.Show("请输入运算符号!", "消息框", MessageBoxButtons.OKCancel, rmation) 四、通用对话框(幻灯片32~41) 如果要想生成复杂的对话框,则可以通过: ?打开文件对话框控件(OpenFileDialog) ?保存文件对话框控件(SaveFileDialog) ?字体对话框控件(FontDialog) ?颜色对话框控件(ColorDialog) 1、OpenFileDialog (1)FileName属性 该属性值为一个包括完整路径和文件名的字符串。用户在对话框文件名列表中选定或输入的文件名会保存在该属性中。如果在打开对话框之前为该属性设置了文件名,则该文件名为打开对话框时的推荐文件名。 (2)Filter属性 该属性用于设置打开文件对话框中“文件类型”列表框中的文件类型。一次可设置多种文件类型。每设置一个文件类型称为一个过滤器。设置一个过滤器的语句格式如下: 文字说明|文件名模式 (3)FilterIndex 用于设置或获取打开文件对话框中当前选定过滤器的索引,第一个过滤器的索引值为1,第二个过滤器的索引值为2 (4)Title属性 用于设置对话框标题,默认标题为“打开”。 OpenFileDialog控件最常用的方法是ShowDialog方法,常用的事件为FileOk事件。

通用对话框添加到工具箱

通用对话框添加到工具箱 工程/部件->选定部件标签->选定Microsoft CommDialog Control 6.0->确定 打开通用对话框: 通用对话框的类型Action方法 打开(Open)1ShowOpen 另存为(Save As)2ShowSave 颜色(Color)3ShowColor 字体(Font)4ShowFont 打印机(Printer)5ShowPrinter 帮助(help)6Showhelp 属性 Action:打开通用对话框。 DialogTiltle:对通用话框标题。 CancelError True:选择“取消”按钮,出现错误警告;Err.Number置为32755(cdCancel)。 False(缺省):选择“取消”按钮,没有错误警告。 1. “打开”文件对话框 属性 FileName:包含路径 FileTitle:不包含路径 Filter:例如, Documents(*.DOC)|*.DOC|Text Files(*.TXT)|*.txt|All Files|*.* FilterIndex:决定在文件类型列表框中显示第几组类型的文件。 InitDir:初始化路径

例8.1简单的文本编辑程序,当按“打开”按钮,在“打开”对话框按“取消”按钮,显示有关信息。 Open CommonDialog1.filename For Input As #1 Do While Not EOF(1) Line Input #1, inputdata txtNoteEdit.Text = txtNoteEdit.Text + inputdata + _ Chr(13) + Chr(10) Loop Close #1 2. “另存为”对话框 没有提供真正的存储文件操作,仍需要编程完成储存操作。 属性DefaultExt:缺省扩展名 例8.1中“另存为...”按钮的事件过程 3. “颜色”对话框 属性Color:返回或设置选定的颜色。 例8.1中“颜色...”按钮的事件过程 4. “字体”对话框 Flags属性:指示所显示的字体类型,必须设置。 cdlCFScreenFonts &H1 屏幕字体 cdlCFPrinterFonts &H2 打印机字体

从零开始学VC系列教程 二.对话框及常用控件实验

从零开始学VC系列教程二. 对话框及常用控件实验 恭喜你,进入VC学习的第二节了.这一节是人机交互的基础.所谓人机交互,说通俗点就是与机器对话.然而我们现在的技术还不能像科幻片里一样与机器人直接说话就行了.所以,我们的操作意图还得通过文本输入,命令按钮等等来实现. 本节内容:学会对话框调用及一些常用控件的使用方法. 学习目的:学习人机交互,为软件开发提供界面基础. 1.新建工程.参考第一节的方法新建一个工程,名字为Eg02完成后如下图 细心的朋友一定会发现.新建的工程里还有一个对话框,ID名是IDD_ABOUTBOX这个是做什么用的呢?我们用到的软件都会有一个版权声明.通过第一章的学习,大家应该知道怎么观看这个IDD_ABOUTBOX对话框了吧.没错!双击IDD_ABOUTBOX就可以了.我们会看到如下的一个对话框 这就是我们这个程序的关于对话框,一般用于版权声明及版本号标识.大家看到的这个对话框里有两个静态文本框和一个图像框(Picture),静态文本框我们在前一节已经介绍过了.大家可以修改一下版权所有这一行,填什么都可以,签个大名也行.完成以后你一定想看看效果,这个对话框怎么打开呢?其实VC已经为我们做好了.先按F7编译,然后按F5运行.大家可以看到

程序运行了. 单击应用程序图标,就会出现一个菜单,选最后一个[关于Eg02],关于对话框就弹出来了. 当然,这是系统为我们做好的.自己怎么在程序中调用这个对话框呢?为了演示,首先参考第一节的内容添加一个按钮,然后把按钮的ID改为IDC_BTN_ABOUTME,把标题,也就是Caption 改为[关于].最终效果如下 下面我们为按钮添加代码.相信大家一定还记得怎么进入代码吧..对了,双击[关于]按钮,在弹出的对话框中点[确定]就可以了.为了让大家更好的理解下面的操作,我们先要解释一下关于对话框的类.VC向导会为关于对话框建立一个类,大家看看下面的图

面向对象技术-对话框和按钮控件

计算机学院 实验报告 实验名称对话框和按钮控件课程名称面向对象技术 姓名班级学号 日期地点 成绩教师

1.实验目的 运用对话框和按钮控件设计一个可供选择的调查问卷对话框。 2.实验内容 设计一个对话框,用于问卷调查,它针对“上网”话题提出了是个问题,每个问题都有四个选项。当回答问题后,按“确定”按钮,弹出一个消息对话框。显示用户选择的内容。 3.实验环境(软件、硬件及条件) VC++6.0 PC WIN7 4.实验方法 1)创建一个默认的基于对话框的应用Ex_Research。 2)Visual C++会自动打开对话框编辑器并显示对话框资源模版。单击对话框编辑器工具栏上的切换网络按钮,显示对话框网格,将对话框标题改为“上网问卷调查”。 3)在对话框中添加实验需要的组框控件、静态文本、静态图文控件、复选按钮和单选按钮等,并按照实验要求修改对应的名称。 4)单击工具栏的测试对话框按钮,测试一下所添加的对话框效果。5)将项目工作区切换到ClassView(类视图)页面,展开CEx_researchDig类的所有成员,双击OnInitDialog函数名就会在文档窗口中自动定位到该函数的实现代码处,在此函数添加初始化代码。 6)用MFC.ClassWizard在CEx_ResearchDlg类中添加IDOK按钮的BN_CLICKED消息映射,添加代码,使得用按“确定”按钮获取用户所作的选择内容。 7)编译并运行,出现“上网问卷调查”对话框,当回答问题后,按“确定”按钮,出现消息对话框,显示用户选择的内容。 5.实验分析 此次实验中,在4)步骤测试对话框,刚开始选择单选按钮是,两组单选按钮中只有一个单选按钮被选中,这是顺序添加的8个单选按钮全部变成一组。解决这个问题的办法是将第一组的第一个单选按钮的Group(组)属性选中。

通用对话框学习

通用对话框学习一: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); } } } } 复制代码

对话框和按钮控件实验报告

实验(实习)报告 实验(实习)名称对话框和按钮控件日期 5.15 得分指导教师 院计算机与软件学院专业计算机科学与技术年级班次姓名学号 实验内容: 设计一个对话框,用于问卷调查,在教材【例Ex_reserch】基础上针对“上网”话题在提出一个问题:“你每天上网的平均时间”,该问题的备选答案是“<1小时”、“<2小时”、“<3小时”和“>3小时”,如图T9.1所示。当回答问题后,单击“确定”按钮,弹出一个消息对话框,显示用户选择的内容。 实验步骤: 1.创建工作文件夹 2.设计“上网问卷调查”对话框 (1)创建一个默认的基于对话框的应用Ex_Research。 (2)调整对话框的大小(宽度不变),将“确定”和“取消”按钮移至对话框的下方,参照图控件的布局,添加一个静态文本框,标题为“你每天上网的平均时间:”,保留默认的标识符。 (3)添加四个单选按钮控件,在其属性对话框中,分别将其标题设置为“<1小时”、“<2小时”、“<3小时”和“>3小时”,标识符分别设置为IDC_TIME_L1、IDC_TIMEL2、IDC_TIME_L3和IDT_TIME_M3。 (4)选中第1 个单选按钮IDC_TIME_L1的Group属性选项。 (5)添加一个静态图片控件,在其属性对话框中将其类型属性为“Frame(框架)”,颜色属性选为“Etched(蚀刻)”。 3.修改代码 (1)在CEx_ResearchDlg::OnInitDialog函数中添加下列代码: CheckRadioButton(IDC_TIME_L1、IDC_TIME_M3、IDC_TIME_L1); (2)在CEx_ReaserchDlg::OnOk函数中添加下列代码: //获得第四个问题的用户选择 Str=str+”\n你每天平均上网的时间:\n”; nID=GetCheckedRadioButton(IDC_TIME_L1、IDC_TIME_M3); GetDlgItemText(nID,strCtrl);//获得指定控件的标题文本 Str=str+strCtrl; 4.编译运行并测试 编译并运行后,显示“上网调查问卷”对话框,当回答问题后,单击“确定”按钮,出现相应的西欧系对话框,显示用户选择的内容。

第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班 学号:06120902 姓名: 嘎日玛盖

Ⅰ内容和要求: 一,对话框常用控件实验要求: 1 控件的消息映像 2控件与关联变量的数据处理 二,对话框常用控件实验步骤: 1步骤 2效果 3执行效果截图 4问题的解决方法 三,对话框常用控件实验的内容: 1编辑框 2静态文本 3单选框 4复选框 Ⅱ实验步骤 1.新建一个工程,选择MFC AppWizard(exe)的项目类型,输入项目名:heiha,结果如图1: 选择单文檔类型。 2.新建一个菜单“正式开始工作”,在其下面建立新选项“提交档案”,设其ID为ID_MENU_TIJIAO,如图2:

钮、复选按钮和普通按钮: m_NAME、m_XINGBIE和m_AIHAO。

5.利用MFC ClassWIzard在Cfirst类中添加IDOK按钮的BN_CLICKED消息映像,并添加下列代码。 UpdateData(true); m_NAME=m_NEIRONG; UINT AID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2); GetDlgItemText(AID,m_XINGBIE); CString str,strCtrl; UINT nCheckIDs[7]={IDC_CHECK1,IDC_CHECK2,IDC_CHECK3,IDC_CHECK4,IDC_CHEC K5,IDC_CHECK6,IDC_CHECK7}; CButton *p; for(int i=0;i<7;i++) { p=(CButton*)GetDlgItem(nCheckIDs[i]); if(p->GetCheck()){ GetDlgItemText(nCheckIDs[i],strCtrl); str=str+strCtrl; str=str+" ";} } m_AIHAO=str; UpdateData(false); 6. 利用MFC ClassWIzard在CMainFrame类中添加对应新建菜单按钮“提交档案”选项ID 的COMMEND消息映像,并添加下列代码。 Cfirst da; da.DoModal(); Ⅲ实验结果 最终执行效果图为如下:

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)打开资源编辑器的菜单项Menu b)双击IDR_MAINFRAME c)双击右边空白菜单,点开pop_up(让它是空白),在名字处写”弹出对话框(&A)”,ID 处写ID_PUPDIALOG 6)将菜单命令连接到主框架程序中,完成ID_PUPDIALOG的消息映射:View→ClassWizard→保证Class name里是CMainFrame,在ObjectIDs 里找到ID_PUPDIALOG点黑→Messages里(右边)点COMMAND建立主框架对象方法并加代码: void CMainFrame::OnPupdialog() { CMyDlg MyDlg; MyDlg.DoModal(); //DoModal()是CDialog类成员函数,通过调用该 //函数将显示对话框。 } 7)在CMainFrame.cpp文件里加: #include “MyDlg.h”// 之后运行。 2、无模式对话框(为186附加页) 非模式对话框,弹出后,可一直保留在屏幕上,用户可继续在应用中进行其它操作或启动其它应用程序,当需要使用对话框时,只需象激活一般窗口一样激活对话框即可。

常用控件中英文对照

Accordion:可折叠标签Alert Box:警告弹窗 Arrow / Line:箭头标记Breadcrumbs:面包屑导航Browser Window:浏览器窗口Button:按钮 Button Bar / Tab Bar:选项条Calendar:日历 Callout:插图编号 Bar Chart:条形图 Column Chart:柱状图 Line Chart:折线图 Pie Chart:饼图Checkbox:复选框

Checkbox Group:复选框组 Color Picker:颜色选择器 combobox / PullDown Menu / DropDown List / Select List:下拉列表 Comment / Sticky Note / To Do:电子便签 Cover Flow:苹果首创的将多首歌曲的封面以3D界面形式显示出来的方式 Data Grid / Table:数据表 Data Chooser / Data Picker:日期选择器 Field Set / Group / Container:该控件可将表单内的相关元素分组Formatting Toolbar / Rich Text Editor Toolbar:格式化工具条,富文本编辑器 Geometric Shape:几何形状 Help Button:帮助按钮 Horizontal Curly Brace:水平花括号

Horizontal Rule / Separator / Line / HR:水平分隔线Horizontal Scroll Bar:水平滚动条 Horizontal Slider:水平滑块 Horizontal splitter / Separator / Drag Bar:水平分隔器Icon:图标 Icon and Text Label:图标和文本标签 Image:图像 iOS Keyboard:iOS键盘 iOS Menu:iOS菜单 iOS Picker:iOS选择器 iPad:iPad iPhone:iPhone Label / String of Text:文本字符串 Link:链接

相关文档
最新文档