您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 第七章 界面设计-cm
7.2通用对话框7.3菜单设计7.4多重窗体7.5鼠标和键盘7.6应用程序向导7.7综合应用第七章界面设计7.2通用对话框工程/部件选定控件标签选定MicrosoftCommDialogControl6.0通用对话框添加到工具箱:确定调用通用对话框的两种方法:1)对对话框控件的Action属性赋值:CommonDialog1.Action=12)调用对话框控件的show方法:CommonDialog1.ShowOpen通用对话框控件(CommonDialog)提供一组标准的操作对话框来返回信息。所显示的对话框方法Action属性值显示“打开”对话框ShowOpen1显示“另存为”对话框ShowSave2显示“颜色”对话框ShowColor3显示“字体”对话框ShowFont4显示“打印”或“打印选项”对话框ShowPrinter5调用Windows帮助引擎ShowHelp6属性:(1)Action:打开通用对话框。只能在程序中赋值,不能在属性窗口设置。(2)CancelError在通用对话框内有一个“确定”按钮和一个“取消”按钮,前者表示确认,后者表示放弃。True:选择“取消”按钮,出现错误警告;Err.Number置为32755(cdCancel)。False(缺省):选择“取消”按钮,没有错误警告。(3)DialogTitle:设置对话框标题栏所显示的字符串。(4)FlagsFlags属性用来修改通用对话框的每个具体对话框的默认设置通用对话框的属性除了在属性窗口和程序代码中设置外,还可以右键在弹出的“属性页”对话框中设置。A.打开文件对话框FilterFileNameInitDirFilterIndex需设置的属性:需设置的属性:FileName:文件名(包含路径)FileTitle:文件名(不包含路径)Filter:过滤文件类型例:Documents(*.DOC)|*.DOC|TextFiles(*.TXT)|*.txt|AllFiles|*.*FilterIndex:决定在文件类型列表框中显示第几组类型的文件InitDir:指定对话框的初始目录【例】8.1用命令按钮的Click事件显示文件打开对话框。(V6bj08-01)CommonDialog1.InitDir=C:\Windows'设置初始目录CommonDialog1.Filter=文本文件|*.Txt'过滤文件类型CommonDialog1.CancelError=True'控制取消按钮CommonDialog1.ShowOpen'打开对话框没有提供真正的存储文件操作,仍需要编程完成储存操作。除了打开文件对话框需设置的那些属性外,还有:属性DefaultExt:缺省扩展名。B.保存文件对话框属性Color:返回或设置选定的颜色。【例】8.2“颜色”对话框的使用。(V6bj08-02)C.“颜色”对话框属性Flags:指示所显示的字体类型,必须设置。cdlCFScreenFonts&H1屏幕字体cdlCFPrinterFonts&H2打印机字体cdlCFBoth&H3打印机字体和屏幕字体。cdlCFEffects&H100显示删除线和下划线检查框以及颜色组合框FontNameFontBold、FontItalicFontSizeFontStrikethruFontUnderlineColorMin、Max【例】8.3字体对话框的使用。(V6bj08-03)D.“字体”对话框属性FromPage:起始页号;ToPage:终止页号;Copies:打印份数。如果打印驱动程序不支持多份打印,该属性有可能始终返回1。【例】8.4打印对话框的使用。(V6bj08-04)E.“打印”对话框F.“帮助”对话框属性HelpCommand:在线Help帮助类型;HelpFile:Help文件的路径及其名称;HelpKey:在帮助窗口显示由该帮助关键字指定的帮助信息。【例】8.5帮助对话框的使用。(V6bj08-05)7.3菜单设计下拉式菜单系统的组成结构:主菜单名快捷键热键下级子菜单标记主菜单条分隔线菜单项子菜单名A.菜单编辑器的使用常用属性:1.标题(Caption)热键前面加&2.名称(Name)文本框分隔符也应有名称3.快捷键(Shortcut)主菜单没有快捷键4.复选(Checked)检查框TRUE有5.有效(Enabled)检查框6.可见(Visible)检查框菜单列表框菜单项属性操作按钮【例】8.6建立一个有菜单功能的文本编辑器。(V6bj08-06)B.弹出菜单(快捷菜单)弹出菜单是独立于窗体菜单栏而显示在窗体内的浮动菜单。显示位置取决于单击鼠标键时指针的位置。菜单弹出的方法:[对象.]PopupMenu菜单名,标志,x,y标志:表示弹出的位置和触发的键SubText1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenuEditMenu,vbPopupMenuCenterAlignEndSub【例】8.7弹出菜单。(V6bj08-07)对于较为简单的应用程序,一个窗体就足够了。对于复杂的应用程序,往往需要通过多重窗体(MultiForm)来实现。每一个窗体可以有不同的界面和程序代码,以完成不同的功能。如有的窗体用来输入数据,有的窗体用来显示结果等等。多文档界面(MDI,multipledocumentinterface)是一种典型的Windows应用程序结构。多文档界面由一个父窗体(简称MDI窗体)和一个或多个子窗体组成,MDI窗体作为子窗体的容器,子窗体包含在父窗体之内,用来显示各自的文档,所有子窗体具有相同的功能。多文档界面允许用户同时打开多个文档,并可在不同文档间快速切换。这在基于windows的办公自动化软件中得到了充分使用。7.4多重窗体1)添加窗体“工程|添加窗体”新建现存添加“现存”窗体时要注意:防止多个窗体的Name相同而不能添加;添加现存的窗体实际是将其他工程中已有的窗体加入,多个工程共享窗体;可通过“另存为”命令以不同的窗体文件名保存,断开共享。2)设置启动对象A.多重窗体“工程/属性”“启动对象”3)窗体语句(1)Load语句:装入窗体到内存但没有显示窗体形式:Load窗体名称(2)Unload语句:从内存删除窗体形式:Unload窗体名称4)窗体方法(1)Show方法:显示一个窗体(当窗体没有Load,自动Load)[窗体名称.]Show[模式]0-Modal:关闭才能对其他窗体进行操作。1-Modeless,可以对其他窗体进行操作。(2)Hide方法:隐藏窗体,没有Unload删除[窗体名称.]Hide5)不同窗体间数据的存取(1)存取控件的属性:另一窗体名.控件名.属性(2)存取变量的值:另一窗体名.全局变量名【例】8.8输入和计算学习成绩。(p196,V6bJ08-08)模块:PublicMATHAsSinglePublicPHYSICSAsSinglePublicCHEMISTRYAsSinglePublicCHINESEAsSinglePublicENGLISHAsSingle7.5鼠标器和键盘1.鼠标器事件注意:鼠标事件发生在什么对象上,是窗体上还是控件上。Click事件,DblClick事件MouseDown事件,MouseUp事件,MouseMove事件SubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)(发生在窗体上的事件过程)MouseUp事件SubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)(发生在窗体上的事件过程)MouseMove事件SubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)(发生在窗体上的事件过程)(1)Button参数b2b1b0B0为1:按下了左键;B1为1:按下了右键;B2为1:按下了中键。例如:Button为2(010B),即B1为1,表示按下了右键;如果按了左键,则B0为1,B1和B2为0,Button为1(001B)IfButton=1Then'或者IfButton=vbLeftButtonThen…'这是按了左健后执行的代码…Endif使用符号常数:1—vbLeftButton:用户按下左键触发了鼠标事件;2—vbRightButton:用户按下右键触发了鼠标事件;4—vbMiddleButton:用户按下中键触发了鼠标事件。(2)Shift参数b2b1b0B0为1:按下了Shift键;B1为1:按下了Ctrl键;B2为1:按下了Alt键。例如:Shift为2(010B),即B1为1,表示仅按下了Ctrl键;如果同时按了Ctrl和Shift键,则B0和B1为1,B2为0,Shift为3(011B)注意:可能同时按下两个或三个键。如果Shift1成立,并不表示没有按下Shift,因为可能其他键也被按下了。如果要测试按下了某个键,则应用and进行位运算。例如Shiftand1成立,表示肯定按下了Shift(可能其他键也被按下了)。IfShift=2andButton=1Then…‘这是仅按住Ctrl键单击鼠标左键后执行的代码…EndIf符号常数:1—vbShiftMask;2—vbCtrlMask;4—vbAltMask。ShiftAndvbCtrlMask为真:按下了Ctrl键;CBool(ShiftAndvbCtrlMask)AndCBool(ShiftAndvbShiftMask)为真:按下了Ctrl键和Shift键(3)x,y:鼠标的当前位置【例】7.13显示鼠标器指针所指的位置。(V6J07-13)2.键盘事件KeyPress事件过程SubForm_KeyPress(KeyAsciiAsInteger)Subobject_KeyPress([indexAsInteger,]KeyAsciiAsInteger)KeyDown事件过程SubForm_KeyDown(keycodeAsInteger,shiftAsInteger)Subobject_KeyDown([indexAsInteger,]keycodeAsInteger,shiftAsInteger)KeyUp事件过程SubForm_KeyUp(keycodeAsInteger,shiftAsInteger)Subobject_KeyUp([indexAsInteger,]keycodeAsInteger,shiftAsInteger)参数说明:Shift与鼠标事件过程Shift相同。KeyCode:键盘扫描码;即用户所操作的物理键。KeyAscii:字符ASCII码。即与按键相对应的ASCII值。KeyPressKeyDown和KeyUp事件发生的时间输入一个ASCII字符按任意一个键参数值KeyAscii接收到字符的ASCII值KeyCode接收到键的扫描码按Shift+A时事件发生的次数事件发生一次事件发生两次按Shift+A时参数值(键盘处于大写状态)97第一次是17第二次是65按Shift+A时参数值(键盘处于小写状态)65第一次是17第二次是65区别【例】7.16“锤打红心”游戏(V6J07-16)(1)利用上、下、左、右四个箭头键控制“铁锤”:“”:37(&H25)“”:38(&H26)“”:39(&H27)“”:40(&H28)(2)如果Abs(Image1.Left-Image2.left300)AndAbs(Image1.Top-Image2.Top320)成立,则认为是重叠,“铁锤”锤打到“红心”。(3)在窗体上的时钟控件(Timer1)过程中控制“红心”移动。Timer1的Interva
本文标题:第七章 界面设计-cm
链接地址:https://www.777doc.com/doc-3618090 .html