文档库 最新最全的文档下载
当前位置:文档库 › vc++对话框制作与编程-Dialog

vc++对话框制作与编程-Dialog

vc++对话框制作与编程-Dialog
vc++对话框制作与编程-Dialog

实验项目三:文档视图结构

实验学时:6

实验类型:设计性

实验目的:

1.理解文档-视图结构

2.掌握SDI程序结构和开发

3.理解MDI程序结构和开发

4.设计支持多文档多视图结构的应用程序

实验内容与说明

第一部分:对话框制作与编程

本例将设计一个能够应用对话框进行参数选择、并运用这些参数进行窗口绘图的MFC程序。请通过此例掌握对话框资源的制作以及模态对话框的编程。同时理解文档视图结构。

第一步:新建工程

新建一个MFC AppWizard(exe)类型的工程,工程取名为DlgDemo。注意路径可能与本地磁盘不同。

修改应用程序类型为Single document。

保持其它设置不变,点击Finish按钮(包括随后的OK按钮)结束工程的创建。

第二步:窗口绘图

为简单起见,本例只打算在视图窗口内绘制一个矩形,该矩形的长度、宽度以及它们的单位都通过对话框进行选择。这些关于图形的关键数据一般应该保存在文档类中,视图类在需要绘图时,就从文档类中读取这些数据,这是文档视图结构的基本运行方式。

为此,需要向文档类CDlgDemoDoc中添加数据成员。在工程的类视图ClassView中右键单击文档类CDlgDemoDoc,选择Add Member Variable...,弹出添加数据成员的对话框。

在下列对话框中添加数据成员m_nWidth。

继续上述步骤,添加数据成员m_nHeight。

继续上述步骤,添加数据成员m_nUnit。

为提供对上述三个protected数据成员的访问,在文档类中提供public访问函数。在工程的类视图ClassView中右键单击文档类CDlgDemoDoc,选择Add Member Function...,弹出添加成员函数的对话框。

在下列对话框中添加成员函数GetWidth以访问数据成员m_nWidth。

继续上述步骤,在下列对话框中添加成员函数GetHeight以访问数据成员m_nHeight。

继续上述步骤,在下列对话框中添加成员函数GetUnit以访问数据成员m_nUnit。

此时可以看到:在头文件DlgDemoDoc.h中,文档类CDlgDemoDoc中增加了如下数据成员和成员函数。

切换到源文件DlgDemoDoc.cpp中,定义刚才添加的三个函数。

同时修改文档类CDlgDemoDoc的构造函数(在源文件DlgDemoDoc.cpp中),在其中初始化这三个数据成员。

对于数据成员m_nWidth和m_nHeight,数据4和2分别表示数值,至于它们代表的单位还需要根据数据成员m_nUnit的取值来定。当m_nUnit取值为0时,单位表示英寸(Inches),此时可以把映射模式设为MM_LOENGLISH。当m_nUnit取值为1时,单位表示毫米(millimeters),此时可以把映射模式设为MM_LOMETRIC。当m_nUnit取值为2时,单位表示像素(Pixels),此时把映射模式设为MM_TEXT。这在下面的函数中会体现出来。

因此,上述构造函数取值,表示默认绘制的矩形宽为4(m_nWidth = 4),高为2(m_nHeight = 2),它们的单位为英寸(m_nUnit = 0)。

最后在视图类CDlgDemoView中读取文档类存放的数据(宽、高和单位),然后绘制矩形。打开源文件DlgDemoView.cpp中的函数CDlgDemoView::OnDraw,这是实现绘图的主战场。

上述程序,首先通过文档类CDlgDemoDoc的指针pDoc读取文档中的数据,然后分别存放到变量width、height、unit中。接着创建一把粉色(RGB (255, 0, 255))的画刷brush。最后根据不同的单位取值,分别设置不同的映射模式,并调用函数Rectangle绘制矩形。请注意该函数的参数取值(为什么有正负之分?)。

运行该程序,可以得到如下结果。

第三步:制作对话框资源

为了实现从对话框动态选择设计参数,下面首先制作对话框资源。需要设计的对话框如下所示。

在工程的资源视图ResourceView中,展开Dialog项,然后单击右键,选择Insert Dialog命令。

此时程序进入对话框设计界面。在待设计的对话框上右键单击,选择属性Properties,首先设置该对话框的属性。

在对话框属性(Dialog Properties)窗口,主要设置该对话框的ID为IDD_DLG_OPTIONS,标题Caption为Options。至于对话框的风格Style,可以浏览一遍,暂时不用设置。不过,也可以进行一些设置,看看它们的效果。按回车键,使得该属性窗口消失。

此时,待设计的对话框的标题变为Options。

把左键放置在对话框右下角的锚点上,待光标变成45度倾斜的双箭头,按下并拖动,以改变对话框的的大小。

从控件工具箱Controls中分别拖动两个标签(Static Text)和两个编辑框(Edit Box),放置到对话框合适的位置。在标签控件上右键单击,选择属性Properties。在属性窗口修改两个标签的Caption 分别为Width和Height,如下图所示。

同时修改两个编辑框控件的ID分别为IDC_WIDTH和IDC_HEIGHT。如下是设置两个编辑框控件属性时的窗口。

从控件工具箱中拖动一个组选框(Group Box)控件放置到对话框中,拖动锚点以调整它的大小。在该控件的属性窗口设置Caption为Unit。注意不要设置ID。

从控件工具箱中连续拖动三个单选按钮(Radio Button)放置到组选框中的合适位置,注意一定要连续。右键依次单击三个按钮,分别进行设置。其中第一个按钮的属性最为重要,请按照下图设计。

选项Group使得接下来的按钮自动成为一组,它们只需要设置一个ID即可。

对余下两个按钮分别如下设置它们的Caption。注意不要设置ID。

从控件工具箱中拖动一个按钮控件(Button)放置到对话框的合适位置。如下修改它的属性。

选项Group使得先前控件的分组自动结束,因为它标志着下一组的开始(虽然后面再没有其它控件了)。

为使得对话框显得美观,可以使用Layout菜单(或者屏幕下方的Dialog工具栏)中的命令调整它们的位置和大小,使得各控件大小相同、分布均匀,并对齐。点击测试Test按钮(或Ctrl+T),设计完成之后的对话框如下所示。

第四步:生成对话框类

设计出来的每个对话框都需要封装为一个类。

在处于设计状态的Options对话框上任何一个位置左键双击,同时弹出添加类(Adding a Class)的窗口和MFC类向导(MFC ClassWizard)。

直接点击OK按钮生成一个新类。在随后弹出的创建新类New Class窗口中键入该对话框类的名字。注意按照惯例,MFC类的名字都以大写字母C为前缀。可以点击Change...按钮改变该类所在头文件和源文件的名字。点击OK按钮完成新类的建立。

New Class窗口消失后,MFC ClassWizard激活为当前窗口。

第五步:添加控件变量

生成对话框类之后,接下来需要为该类添加控件变量。定义控件变量是为了让对话框中控件的取值有效地与类中的数据成员进行双向数据交换(例如把编辑框中的数据保存到程序中,或者从程序中读取数据显示在编辑框中)。这些都可以借助类向导轻松完成。

点击MFC ClassWizard窗口的Member Variables选项卡。确保Class Name下拉列表框中选中的是COptionsDialog类。

双击Controls IDs列表框中的控件ID,例如IDC_WIDTH,弹出添加数据成员(Add Member Variable)对话框。在数据成员名称(Member variable name)列表框中键入合适的取名,确保类型(Category)列表框中选中的是Value,同时选择数据成员类型(Variable type)为int。点击OK按钮结束数据成员m_nWidth的添加。

对于数据成员m_nWidth来说,还可以限定用户在编辑框中所输入数据的范围,例如假定该值仅限于1~10之间,超过该值之后为非法数据而不接受。这可以在Member Variable选项卡下方的编辑框中输入相关数据而限定。

同样对ID为IDC_HEIGHT的编辑框控件添加数据成员m_nHeight。

同样限定该数据成员的有效取值范围。

后对ID 为IDC_UNIT 的组选按钮添加数据成员m_nUnit 。

如果添加错误,可以选择Delete Variable 按钮删除该数据成员。 六步:添加按钮单击事件处理函数

对话框ions 个按钮Reset ,点击它的、高和单位分别恢复成默认值4、2和Inches 。因此需要对该按钮单击的事件进行处理。

第Opt 中有一目的是要把宽

在MFC Wizard窗口中,切换到Message Maps选项卡。确保Class Name下拉列表框中选中COptionsDialog,在Object IDs列表框中选中按钮Reset的ID IDC_RESET,然后在Messages列表框中双击BN_CLICKED消息。

接受添加成员函数(Add Member Function)

对话框中推荐的成员函数取名(OnReset)。点击OK 按钮退出该对话框。

在源文件OptionsDialog.cpp中编辑函数COptionsDialog::OnReset如下。

函数调用UpdateData(FALSE)使得三个控件变量的取值回传到各自的控件中。

接着查看源文件OptionsDialog.cpp 中由应用程序框架自动生成的代码。注意以下两个函数无需程序员进行编辑。构造函数COptionsDialog::COptionsDialog 对控件变量进行初始化。

的主要工作(函数DDX_Text ),从中也可以看到数据校验的代码(函数DDV_MinMaxInt ),这些都使得程序员的工作变得简单。

成员函数COptionsDialog::DoDataExchange

完成了控件与变量之间数据双向交换

七步:把对话框挂接到应用程序中

源已经制作件变量已经创建好。下面的问题就是要把该对话框通过应用为此,修改工程的ns 对话框。双击资源窗ResourceView 中Menu 下的子项IDR_MAINFRAME 。在菜单File 的最下面添加子菜单项Option...,把它的ID 设为ID_FILE_OPTIONS 。

第对话框资完成,对话框类及其控程序显示处理,同时接受用户的输入,然后用该参数重新绘制矩形。

菜单资源,通过单击菜单项,弹出选项Optio

在MFC ClassWizard 对话框中,对文档类CDlgDemoDoc 添加子菜单项ID_FILE_OPTIONS 对于消息COMMAND 的响应函数OnFileOptions 。如下所示。最后一步点击Edit Code 按钮直接去编辑该函数。

的控件变量(函数体中从第四行开始的三个赋值语句),以供显示。接着对对话框对象dlg 调用函数DoModal 进行模态显示,同时接受用户的输入,如果用户单击OK 按钮从对话框返回,则接受从对话框中获取的控件变量值,并把这三个值再回传到文档类CDlgDemoDoc 的数据成员中以供保存(if 语句中的三个赋值语句),同时调用函数UpdateAllViews 用新的参数重新绘制矩形。

如下编辑函数CDlgDemoDoc::OnFileOptions 。在选取菜单项Options 之后,首先生成Options 对话框对象dlg 。在显示该对话框之前,先把文档类CDlgDemoDoc 的数据成员中存储的当前值传递给对话框

注意:上述函数CDlgDemoDoc::OnFileOptions 中需要用到类COptionsDialog ,因此需要在源文件DlgDemoDoc.cpp 的开始添加对头文件包含的指令。OptionsDialog.h

至此,可以编译、连接、运行程序,测试菜单项,在弹出的Op 对话框中设的看看视图窗口绘制的矩形有何变化。

File/Options...tions 置参数,请故意输入不在1~10范围内的数,看看弹出警告信息。在输入合法的数据之后,单击OK 按钮,第八步:应用微调按钮

如果能够在输入数据的编辑框右边添加一个微调按钮,通过单击该按钮(或者按键盘上的上下箭头),实现数据逐一增加或减少,则实属快意!

重新修改对话框Options 的资源。从控件工具箱中分别拖动两个微调按钮(Spin )放置到Width 编辑框和Height 编辑框的右边,注意紧挨着该编辑框。如下所示。

右键单击上面的微调按钮,对它进行属性设置。General 属性页中设置ID 为ID_SPIN_WIDTH 。

在Styles属性页中,Array Keys属性已经被设置为True,这使我们能够使用键盘上的箭头键来操作微调按钮。还应该把Set buddy integer属性设置为True,从而把伙伴控件的值指定为整数。把Auto buddy属性设置为True,从而提供伙伴控件的自动选择功能,即把该微调按钮的上一个控件自动设置为伙伴按钮。所谓“上一个”,是按照Tab键顺序而言。选择对齐属性Alignment为Right,使得微调按钮连接到其伙伴控件的右边。

对第二个微调按钮进行同样设置,只是它的ID设为ID_SPIN_HEIGHT。其它属性仿照上图同样设置。

为使得编辑框控件是微调按钮的伙伴控件,需要检查该对话框中各控件的Tab键顺序。对处于设计状态的对话框Options,选取菜单项Layout/Tab Order(或快捷键Ctrl+D),当前的Tab键顺序如下。明显不满足我们的要求,因此需要调整。

VC 中自己创建对话框方法

VC中自己创建对话框的方法 这里讲在VC中不需要打开MFC工程,通过代码直接创建一个对话框,我看这个对话框比MFC的漂亮多了,而且要写会代码不需要研究MFC就直接开发新的工程. 先打开VC++ 6.0 版本, 第一步:创建一个工程名为:Main Dialog 的Win32 Application。创建过程如下: 打开File菜单中New,选自Win32 Application,工程名为:Main Dialog,点击OK,再选自A simple Win32 application。点击Finish,再点击OK.(见图1) 第二步:创建资源脚本。再打开File菜单中New,选自File选项的Resource Script(就是资源脚本),文件名为Dialog,点击OK。

(见图2) 第三步:插入对话框。刚才建立的脚本Dialog显示为Dialog.rc,就在Dialog.rc上面点击鼠标右键Insert(插入)Resource中选自插入Dialog(对话框),点击New(新建),这样对话框插入完毕。(见图3)

第四步:添加resource.h。我们把第四步插入的对话框ID改为IDD_MAIN ,在FileView中有个Header Files的文件,上面点击右键,选择Add Files to Folder...(添加文件到目录),弹出一个工程目录窗口,中间找到resource.h,然后OK了(添加)。(见图4)

第五步:复制代码。双击Main Dialog.cpp,我们写代码的位置出现了(见图5),那里有几行代码,把它们全部删掉,下面已经准备好的代码全部复制到那里,编译,执行,您的是否成功了? #include "stdafx.h" #include "resource.h" #include BOOL WINAPI Main_Proc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam); BOOL Main_OnInitDialog(HWND hwnd,HWND hwndFocus,LPARAM lParam); void Main_OnCommand(HWND hwnd,int id,HWND hwndCtl,

第六章 对话框控件

学习目标: ?掌握CommonDialog。 ?掌握文件操作相关的对话框。 ?理解打印对话框。 6.1对话框: 对话框是一种用户界面接口,用于同用户进行交互,完成一些特定的任务,简单的对话框有对用户操作进行提示的对话框,对重要操作要求用户进行决定的交互对话框等。 这类任务能被独立出来,作为通用的交互处理过程。这些能被独立出来作为通用交互过程的任务常见如下一些: (1)文件选取。 (2)保存设置。 (3)路径选取。 (4)字体选取。 (5)颜色选取。 (6)打印设置。 (7)打印预览框。 在.NET中这些组件是在https://www.wendangku.net/doc/9b15553906.html,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指出用户成功完成了操作,成功选取了文

VC++对话框添加工具栏

VC++对话框添加工具栏 1、添加工具栏资源ID为IDR_TOOLBAR 2、在对话框的类定义中加: CToolBar m_ToolBar; 3、在OnInitDialog中或其它合适的消息响应中加如下代码:(函数可查看MSDN) m_ToolBar.Create(this); //创建工具栏 m_ToolBar.LoadToolBar(IDR_TOOLBAR);//加载工具栏 //得出控件条大小. CRect rect; CRect rectNow; GetClientRect(rect); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rect Now); //放置控件条位置 CPoint ptOffset(rectNow.left-rect.left,rectNow.top-rect.top); CRect rcChild; CWnd* pwndChild=GetWindow(GW_CHILD); while (pwndChild) { pwndChild->GetWindowRect(rcChild); ScreenToClient(rcChild); rcChild.OffsetRect(ptOffset); pwndChild->MoveWindow(rcChild,FALSE); pwndChild=pwndChild->GetNextWindow(); } //调整对话框尺寸 CRect rcWindow; GetWindowRect(rcWindow); rcWindow.right+=rect.Width()-rectNow.Width(); rcWindow.bottom+=rect.Height()-rectNow.Height(); MoveWindow(rcWindow, FALSE);

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)表示删除所选。

VC++实现对话框工程中添加菜单

VC++对话框程序中添加菜单 在VC中创建一个基于对话框的MFC程序,要在其中添加菜单总共分三步: 1、首先插入一个菜单资源IDR_MENU1,然后可以编辑修改菜单; 2、然后在为对话框添加一个CMenu类型的成员变量m_Menu; 3、在OnInitDialog()中添加如下的代码: m_Menu.LoadMenu(IDR_MENU1);//载入菜单 SetMenu(&m_Menu); //显示菜单 经过这三步以后菜单就可以显示出来了。 MFC 对话框工程中添加菜单(VC++ 6.0编译器) MFC 对话框工程中添加菜单(VC++ 6.0编译器) 第一步:创建对话框资源和菜单资源. 第二步:添加菜单到对话框中 方法一: 在创建的对话框中右键,在Menu选项选择自己的菜单ID如下图

此时就可以了. 方法二: 不用方法一,直接添加代码完成上述功能. 添加代码到DialogDlg ::OnInitDialog中 CMenu *menu = new CMenu; menu ->LoadMenu(MAKEINTRESOURCE(IDR_MENU)); //IDR_MENU 菜单ID this ->SetMenu(menu); 或者 Cmenu m_menu; m_menu.LoadMenu(IDR_MENU); SetMenu(&m_menu); 此时结果如下图 最后在添加菜单到对话框类中,实现其各种功能. 下面是在上面的基础上实现的通用对话框空间的功能代码,方便以后开发使用. (1)打开文件对话框 条件: OPENFILENAME结构体初始化 GetOpenFileName函数调用

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

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

VC++自定义控件的建立及使用方法

VC++自定义控件的建立及使用方法 本文来自: https://www.wendangku.net/doc/9b15553906.html, 详细来源请参考:https://www.wendangku.net/doc/9b15553906.html,/techntxt/201298191132524755545 VC++自定义控件的建立及使用方法来源:https://www.wendangku.net/doc/9b15553906.html,/ 发布日期:2012-09-08 点击次数:168 发布者IP:218.25.20.78 VC++自定义控件的使用方法 一、VC++定义自定义控件与delphi,VB有些差异。delphi,vb在file-new-other中建立。vc++在工具栏中就有 自定义控件,但必须加入控件类型。许多书籍都在类向导中建立。我这里介绍的是手动建立,其结果是一样的 。 二.建立过自定义控件类型: 2.1、把工具栏上的自定义控件放入对话框中 2.2、建立Mycontrol.h, Mycontrol.cpp文件 2.3、Mycontrol.h中的定义是 #ifndef __MYCTROLTRL_H__ #define __MYCTROLTRL_H__ #define MYWNDCLASS "mycontrol" #include class CMycontrol: public CWnd { private: public: static BOOL RegisterWndClass(); CMycontrol(); void customfun();//一个自定义方法 }; #endif 2.4 Mycontrol.cpp中的实现部分 #include "StdAfx.h" #include "mycontrol.h" CMycontrol::CMycontrol() { CMycontrol::RegisterWndClass(); } //注册控件RegisterWndClass格式是固定的不要记忆没有那个必要直接拷贝粘贴就可以。 CMycontrol::RegisterWndClass() {

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

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

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

VC环境下在对话框中动态生成视图的方法

VC环境下在对话框中动态生成视图的方法 吴超 摘要阐述利用VC++进行软件开发中,如何在对话框中动态生成自定义视图的一种方法,并给出了具体实现步骤和代码。关键词动态生成视图 The method of creating dynamical view in dialog under VC environment Wu Chao Abstract Illustrating one method of creating custom dynamical view in dialog during VC++ software development work, and giving concrete steps and codes. Abstract Dynamic create View 0引言 在VC++开发的C/S软件中,对话框是Windows应用程序中最重要的用户界面元素之一。对话框中,数据一般只能显示在编辑框、列表框或树形控件等自带控件中,如需在对话框中将众多数据用自绘的曲线图或柱形图来显示,特别是通过对话框控件来控制和管理视图,以达到对数据有效处理和显示目的,就必须通过在对话框中动态生成自定义视图来实现。本文介绍了一种在对话框中增加视图的有效方法,通过了相关测试并给出应用实例。 1实现技术方法 对话框(Dialog) 实际上是一个窗口, 在MFC中对话框的 功能被封装在 CDialog类中,是 CWnd类的派生类, 而CView或其子类 CScrollView也派生 自CWnd类,如图1。 因此,在对话框中添 加视图,不能通过类 的继承或派生来简单实现,需要手工添加相关代码,涉及到下列技术方法,具体有四个步骤。 1.1添加CMyAddView 1.1.1 添加新类 Insert一个视图类CMyAddView,使其从CScrollView派生,当视图设置范围超过窗口大小时,会自动生成滚动条。 1.1.2 定义资源和变量 在视图类定义中加入视图资源定义“enum { IDD = IDD_SCROLL_VIEW};”和被使用的对话框指针“CMyAddViewDlg *pViewDlg;”语句。 在MyAddView.h 文件中引用“class CMyAddViewDlg;”,并在Resource.h文件中,添加资源定义代码“#define IDD_SCROLL_VIEW 107”,并将OnInitialUpdate函数变为公有函数。 1.1.3 为pViewDlg赋值 在CMyAddView的OnInitialUpdate函数中,为视图的父对话框指针赋值,增加“pViewDlg = (CMyAddViewDlg *) GetParentOwner();”。 1.2在对话框中加入指针变量 1.2.1 增加视图指针变量 在CMyAddViewDlg对话框中添加指向视图的指针变量“CMyAddView* m_pWnd;”。 1.2.2 添加AddView函数 BOOL CMyAddViewDlg::AddView(LPCTSTR lpszLabel, CRuntimeClass *pViewClass) { TRY { m_pWnd = (CMyAddView *)pViewClass->CreateObject(); if (m_pWnd == NULL) { AfxThrowMemoryException(); } } CATCH_ALL(e) { return FALSE; } END_CATCH_ALL DWORD dwStyle = AFX_WS_DEFAULT_VIEW; // 以下代码定义视图在对话框中的位置,数值以改变视图边框在对话框中的相对位置 CRect rect; 图1 类的继承关系

如何在VC++中两个对话框相互传递信息

如何在VC++中两个对话框相互传递信息 (2010-12-11 17:40:12) 在VC++中,打开对话框一般是用DoModal()函数调用模态对话框,但是模态对话框只能在对弹出的当前子窗口进行操作,而不能对父窗口进行操作,也无法传递数据到父窗口中,根据笔者的研究发现,采用非模态对话框的模式可以很好的解决这一问题。 在VS2008中新建一个就有MFC应用程序的Project项目,在弹出的MFC 应用程序向导中选择“基于对话框”,取消“使用Unicode库”,单击完成。在“资源视图”里面添加一个对话框,默认ID为IDD_DIALOG1。 双击IDD_DIALOG1对话框,在弹出的MFC类向导中,类名填写CSonDialog,基类选择CDialog,单击完成。这样我们就将新建的IDD_DIALOG1关联上一个基于CDialog的类了。 在父窗口上添加一个按钮,双击,便可进入这个按钮的消息响应函数。在最上面包含CSonDialog的头文件#include “SonDialog.h”。如果在消息响应函数中写入如下代码: CSonDialog SonWnd; SonWnd.DoModal(); 运行之后按下父窗口上的按钮,可以发现弹出了IDD_DIALOG1,但是只能在IDD_DIALOG1上操作,无法操作父窗口。如果想要在弹出子窗口后还可以操作父窗口的话,需要采用非模态对话框的模式弹出子窗口。 MFC在CDialog类中有一个Create(UINT nIDTemplate, CWnd *pParentWnd = 0),这个函数可以创建一个Dialog,其中参数nIDTemplate为需要创建的Dialog 的ID。同时还有一个函数ShowWindow(int nCmdShow),用来显示创建的这个Dialog。在消息响应函数中写入如下代码: CSonDialog SonWnd; SonWnd.Create(IDD_DIALOG1); SonWnd.ShowWindow(SW_SHOW); 运行之后按下父窗口上的按钮发现窗口闪了一下,然后就消失了。这是因为对象SonWnd是一个局部对象,在运行完SonWnd.ShowWindow(SW_SHOW)这条语句之后便退出了消息响应函数,因此SonWnd对象也就被销毁了。如果想要退出消息响应函数之后窗口依然存在,则需要将SonWnd定义为一个全局变量。因此在ProjectDlg.h中添加一个CSonDialog SonWnd的定义,同时由于VC++在

VC++6 第六章_创建和使用对话框

第6章创建和使用对话框 对话框是一种用户界面,几乎每一个Windows程序都使用对话框与用户进行交互。对话框可能是一个简单的只含有OK按钮的消息框,也可以是一个复杂的数据输入表单。对话框上有一些方便用户输入的控件,对话框依靠这些控件与用户进行交互,其实质是一个接收消息的窗口。 在本章节我们主要讲述模式对话框和无模式对话框的原理和使用方法,下一章将详细介绍各种控件的使用。你将学习创建一个对话框,使用对话框模板编辑一个对话框资源,并在程序中调用对话框的方法。 6.1 对话框的基本原理 6.1.1 对话框的工作原理 在创建一个对话框之前,我们先来了解一下对话框是如何工作的,对话框的数据来自三方面:对话框资源、对话框对象、和一个文档对象: 1.对话框资源 对话框资源是一个用户输入或取得数据的图形界面。这个图形界面是使用Develop Studio的对话框编辑器在对话框模板上创建的,程序员可以在对话框模板上增加并编辑控件,生成对话框资源。当应用程序运行时,就可以得到一个对话框。 2.对话框对象 MFC使用CDialog类来描述对话框,它是CWnd类的派生类。在CWnd类的基础上增加了数据交换的功能。当创建一个新的对话框资源后,使用ClassWizard可以创建一个对话框类的派生类。对话框对象实现了对话框和应用程序之间的通信。在应用程序中定义一个对话框对象后,在对话框显示前,可以通过访问对话框对象的成员变量为一个对话框的控件初始化,在对话框关闭后,可以通过访问对话框对象的成员变量获得用户的输入数据。 3.文档对象 MFC使用文档对象描述应用程序处理的数据,用户输入的数据要进一步的处理,通常要先存贮到文档对象中。例如:一个学生记录处理的应用程序,用户通过一个对话框输入学生记录并贮存到一个文件中。应用程序的处理顺序是:用户在对话框中输入信息,通过对话框对象得到输入信息,将输入信息整理到文档对象中,使用序列化函数将文档对象存贮到一个文件中,所以文档对象扮演了一个很重要的数据交换的角色。 MFC使用以上三者实现用户与应用程序之间数据交换,数据交换流程见图6-1所示,遵循四个步骤。

MFC应用程序向导的使用示例

Microsoft Foundation Class就是微软基础类库,简称MFC,MFC是很多类得集合,不仅如此,MFC还是一种应用程序的框架结构,是VisualC++集成开发环境提供的一个代码生成工具,就像向导一样通过详细的帮助文档来引导程序员一步步的生成Windows应用程序。 1)【示例】下面通过编写MFC多文档应用程序,介绍如何让通过MFC应用程序向导建立 Windows应用程序,具体步骤如下: 打开VC,选择【file】→【new】命令,弹出【new】对话框,如下: 2)该对话框用于选择工程类型、名称和存放位置等信息,如图选择再单击【ok】弹出如图

3)该对话框用于选择应用程序类型、是否支持文档/视图结构和应用程序中资源的语言类 型,程序类型有单文档多文档基于对话框3种,选择如图,单击【next】,弹出 4)该对话框用于选择是否支持数据库应用及数据源,选择如图,单击【next】弹出:

5)用于选择是否支持复合文档和OLE等,选择如图,单击【next】弹出 6)定制应用程序的外观,包括工具栏、状态栏、打印和打印预览、上下文帮助等,还能定制是否支持“windows sockets”,单击【advanced】弹出 能进行一些高级设置,在该示例中保持默认状态不变,关闭此窗口再单击【next】弹出

7)定制应用程序风格、源代码是否生成注释和MFC类库连接方式等,选择如图,单击【next】弹出

8)用于展示MFC应用程序向导生成的C++类,包括CMultiDocView、CMultiDocApp等上述5个类。在这个对话框中可以修改名称和相应的头文件和源文件,在此示例中可保持默认,单击【finish】弹出完成对话框:

VC 9模式对话框设计的步骤

VC++9 创建模式对话框 1.创建一个单文档的项目:xx 2.“插入”/“资源”/“Dialog”。创建如下图的对话框。 3.修改对话框的属性。右击对话框,在属性对话框中,“标题”改为:录入成绩。 4.添加5个静态控件,输入5门课程名,添加5个编辑框控件。 5.设置各控件的属性,修改默认按钮的标题为:“确定”和“取消”。 6.组织安排控件,使之整齐排列。 7.设置Tab顺序 8.测试对话框,不满意处进行修改。(6、7、8步通过“编排”菜单来完成) 以上2~8步是对话框资源的设计。 9.创建对话框类。“查看”/“建立类向导”,添加新类,名称为:CScoreDlg。(观察变化: “类视图”中,添加了新类;“文件视图”中,增加了相应的.cpp文件和.h文件) 10.创建成员变量。为5个编辑框添加int型成员变量:m_Score1~m_Score5。(观察变化: “类视图”多了5个成员变量;双击类名,在类定义处,自动定义了5个变量;双击类的构造函数,可以看到5个成员变量的初始化值) 11.设置数据的有效性检验。在类向导中,为5个成员变量添加最小值和最大值。(观察变 化:类的成员函数DoDataExchange()中添加了相应的代码) 以上9~11步是设计对话框类。 12.在xxDoc类中,添加全局变量:int score[5]; 在该类的构造函数中为全局变量初始化, 初值设为:0。 13.在类视图中,为“xxView”类的成员函数OnDraw()添加下列代码,用于设定输出格式: pDC->TextOut(0,0,”高等数学大学物理大学英语哲学计算机基础”); CString str; str.Format(“%13d%13d%13d%13d%13d”,pDoc->score[0], pDoc->score[1], pDoc->score[2], pDoc->score[3], pDoc->score[4],); pDC->TextOut(0,20,str); 14.在“资源视图”窗口中,选中“Menu”,为“编辑”菜单添加新的菜单项“成绩录入”。 右击菜单项,在标题属性中输入“成绩录入”,在ID 项中添加ID为:ID_SCOREFILLING 15.为新添加的菜单项定义消息处理函数(只要选择了该菜单项,弹出上面的模式对话框)。 在类向导中,类名为:“xxDoc”,ID值为:ID_SCOREFILLING。Message项选择“COMMAND”。添加成员函数,函数名默认。函数代码如下:

对话框常用控件实验报告

对话框常用控件实验报告 班级:电气工程与自动化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(); Ⅲ实验结果 最终执行效果图为如下:

vc++对话框制作与编程-Dialog

实验项目三:文档视图结构 实验学时:6 实验类型:设计性 实验目的: 1.理解文档-视图结构 2.掌握SDI程序结构和开发 3.理解MDI程序结构和开发 4.设计支持多文档多视图结构的应用程序 实验内容与说明 第一部分:对话框制作与编程 本例将设计一个能够应用对话框进行参数选择、并运用这些参数进行窗口绘图的MFC程序。请通过此例掌握对话框资源的制作以及模态对话框的编程。同时理解文档视图结构。 第一步:新建工程 新建一个MFC AppWizard(exe)类型的工程,工程取名为DlgDemo。注意路径可能与本地磁盘不同。

修改应用程序类型为Single document。 保持其它设置不变,点击Finish按钮(包括随后的OK按钮)结束工程的创建。 第二步:窗口绘图 为简单起见,本例只打算在视图窗口内绘制一个矩形,该矩形的长度、宽度以及它们的单位都通过对话框进行选择。这些关于图形的关键数据一般应该保存在文档类中,视图类在需要绘图时,就从文档类中读取这些数据,这是文档视图结构的基本运行方式。 为此,需要向文档类CDlgDemoDoc中添加数据成员。在工程的类视图ClassView中右键单击文档类CDlgDemoDoc,选择Add Member Variable...,弹出添加数据成员的对话框。

在下列对话框中添加数据成员m_nWidth。 继续上述步骤,添加数据成员m_nHeight。 继续上述步骤,添加数据成员m_nUnit。 为提供对上述三个protected数据成员的访问,在文档类中提供public访问函数。在工程的类视图ClassView中右键单击文档类CDlgDemoDoc,选择Add Member Function...,弹出添加成员函数的对话框。

自定义对话框工程向导制作(VC6)

转自如鹏网 第一步:使用管理员身份打开VC,(为什么要用管理员身份呢?这是因为我的电脑是win7的,而且UAC 设置并没有关,VC又是安装在C盘,所以待会儿写入模板的时候需要管理员权限才能写入C盘的VC安装目录下。XP好像不需要用管理员权限打开)打开后,点击【文件】【新建】”,弹出一个对话框,选择【Win32Application】,在右上角输入工程名,选择你的工程保存的位置,点击【确定】后弹出一个对话框,选择【一个简单的Win32程序】再点击【完成】,再在弹出对话框点【确定】即可。如图:

第二步:再次点击【文件】【新建】弹出对话框,选择【资源脚本】,输入文件名点击【确定】新建完成。弹出对话框如下图二。

上图中的文件名为rescource为我的拼写错误,我重新建了一个,下面我已经改正文件名为resource了! 对准上面对话框中的resource.rc 点击【右键】【插入】,弹出对话框,选中【dialog】点击【新建】,一个对话框窗体就创建完成了。

如图。 对准对话框主窗体内【双,弹出对话框的属性框,将原来的ID【IDD_DIALOG1】修改为【IDD_MAIN】后点击【确定】。 然后自己随便画些按钮或者控件上去,这个就是你以后使用该向导创建的窗体的样子了。另外在更多样式选项卡选择居中,你的窗体出现就会在屏幕中间哦! 第三步:编辑cpp文件定制自己的个性模板 首先在工作区【FileView】选项卡中双击【工程名.cpp】文件(我这里是DialogApp.cpp,只因为刚才新建的工程名为DialogApp.cpp)编辑,可以看到如下字段 1.#include"stdafx.h" 2.intAPIENTRY WinMain(HINSTANCE hInstance, 3. 4. 5.HINSTANCE hPrevInstance, 6.

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附加页) 非模式对话框,弹出后,可一直保留在屏幕上,用户可继续在应用中进行其它操作或启动其它应用程序,当需要使用对话框时,只需象激活一般窗口一样激活对话框即可。

VC动态创建对话框和按钮、消息响应

vc 动态创建对话框和按钮、消息响应 1.创建非模态对话框: 类*对象=new 类 BOOL 对象->Create(ID,this); 创建后需调用ShowWindow函数将对话框显示出来 对象->ShowWindow(SW_SHOW); 在非模态对话框中点击确定和取消时,对话框并不销毁,而是隐藏起来,要想销毁,需调用DestroyWindow函数 2.动态创建按钮: 方法1为要加按钮的类添加一个私有的CButton成为变量m_btn,还要添加一个BOOL 型的私有成员量m_bIsCreated用来确定是否创建了按钮 if(m_blsCreated==FALSE)////判断如果没有创建按钮 { m_btn.Create("new",/////按钮上显示的文本 BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,///如果没有制定WS_VISIBLE还要调用ShowWindow将其显示出来 CRect(0,0,100,100),/////左上角的坐标(0,0),长度为100,100 this, 123);ID地址为123 m_blsCreated=TRUE; } else { m_btn.DestroyWindow(); m_blsCreated=false; } 方法2用CWnd类的成员对象m_hWnd用来保存与窗口对象相关联的窗口句柄,如果窗口对象没有与任何窗口相关联,该值为NULL if(!m_btn.m_hWnd) { m_btn.Create("new",BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(0,0,100,100),thi s,123); m_blsCreated=TRUE; } else { m_btn.DestroyWindow(); m_blsCreated=false; }

VB常用控件介绍

VB常用控件介绍 (一)标签的常用属性 1、Name:名称。默认为Label1。 2、Caption:标签显示的文字。 3、Font:设置显示文字的性质。 4、Backcolor:背景色 5、Visible:设置标签是否可见 (二)命令按钮的常用属性 1、Name:默认值为Command1 2、Caption:按钮上显示文字。 3、Visible:设置按钮是否可见。 (三)窗体的常用属性 1、Name:定义对象的名称,默认为Form1,可以在属性窗口更改,运行时不可改。(注:与Caption区别) 2、BackColor:设置窗体的背景色 属性窗口:①调色盘选择颜色②输入16进制值 3、Caption:窗体标题栏中显示的文字。 4、Font:设置窗体字体类型。 5、Height(高)、Width(宽):设置窗体大小。 6、StartUpPosition:设置窗口位置。 (四)文本框常用属性 1、Name:默认为Text1,可修改为以Txt为前缀的名称。 2、Text:显示在文本框中的文字。 3、MaxLength:设置输入字符串的长度限制。 4、PassWordChar:设置输入密码时用户输入的字符。 (五)驱动器列表框常用属性 1、Name:名称。默认为Drive1。 2、Drive: 驱动器列表框中的驱动器名。 (六)目录列表框常用属性 1、Name:名称。默认为Dir1。 2、Path: 返回或设置当前路径。

(七)目录列表框常用属性 1、Name:名称。默认为File1。 2、Path: 返回或设置当前路径。 (八)操作对话框控件常用属性(进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作) 1、Name:名称。默认为CommonDialog1。 2、ShowOpen:显示“打开”对话框。 3、ShowSave显示“另存为”对话框。 4、ShowColor显示“颜色”对话框。 5、ShowFont显示“字体”对话框。 6、ShowPrinter显示“打印”或“打印选项”对话框。 7、ShowHelp 调用 Windows 帮助引擎。 (九)菜单的制作: 1、菜单编辑器的使用: “工具”/“菜单编辑器” 2、菜单的创建: (1)“标题”:输入菜单项文本(相当于Caption) (2)“名称”:输入菜单项名称,编程用。(相当于Name) (3)降低可上升一个层次 改变菜单项顺序 复选:可多选,左边加上√有效:是否可用(Enabled) 可见:是否可见(Visible) (4)单击“下一个”或“插入”,建立下一个菜单 (5)确定 3、菜单分组: 分隔线作为一个菜单项,“标题”中输入“-”(连字符,并角),“名称”任意。 4、访问键设置: 使用:Alt+字母 设置:“标题”中,字母前加“&” 5、快捷键设置: 在列表中选择相应的快捷键。 (1)第一级菜单无快捷键 (2)同一菜单的子菜单中不能有相同的访问键和快捷键

相关文档
相关文档 最新文档