Visual Basic 中的界面设计原则和编程技巧Word格式.docx
《Visual Basic 中的界面设计原则和编程技巧Word格式.docx》由会员分享,可在线阅读,更多相关《Visual Basic 中的界面设计原则和编程技巧Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
中国科技大学计算机系谢海永赵保华
在VB里,MDI(MultipleDocumentInterface,多窗口程序)窗体是这样定义的:
“MDI窗体作为一个程序的后台窗口,包含着MDIChild属性为True的窗体”。
在一个VB程序中,至多只能存在一个MDI父窗体,可以有多个MDI子窗体;
建立一个MDI父窗体的方法是在VB的File菜单里选择“NewMDIForm”。
在MDI程序运行时,如果子窗口具有菜单,那么当子窗口被激活时,子窗口的菜单就会自动替换父窗口菜单;
当子窗口被最小化时,在MDI父窗口里就会出现子窗口的图标。
Windows的通用图形界面的出现,使计算机用户不必通过专门的学习就可以得心应手地使用各种Windows的软件;
不仅如此,它还是程序设计者在设计Windows程序的界面时所必须遵循的标准,这在很大程度上减轻了程序设计者的负担,使他们能够把主要精力放在问题的求解和实现上。
VisualBasic的出现,更加简化了Windows程序界面的设计工作,只需要极少量的代码,就能实现标准Windows应用程序的界面。
但是,如果不了解Windows程序界面设计的原则,或者不熟悉VB下界面编程的技巧,就难以设计和实现既符合一般标准又具有特色的界面。
界面设计的原则界面设计具有一般性的原则,最为重要的有:
界面要具有一致性。
一致性原则在界面设计中最容易被违反,同时也最容易修改和避免。
例如,在菜单和联机帮助中必须使用相同的术语;
对话框必须具有相同的风格。
常用操作要有捷径。
常用操作的使用频度大,应该减少操作序列的长度。
例如,为文件的常用操作如打开、存盘、另存等设置快捷键。
使常用操作具有捷径,不仅会
窗口处理技巧大全
Vb提供了API函数SetWindowLong和GetWindowLong,可以让我们很容易取得对窗口的操作;
通过对窗口属性的操作,可以更改窗口的显示风格。
有些看来是正常情况下无法实现的窗口,现在你可以很容易的实现。
只要你想到,更多希奇古怪的你也能做到。
快试试下面的例子吧。
一下例子中可能用到的API声明和常量、变量声明
PrivateDeclareFunctionGetWindowLongLib"
user32"
Alias"
GetWindowLongA"
(ByValhwndAsLong,ByValnIndexAsLong)AsLong
PrivateDeclareFunctionSetWindowLongLib"
SetWindowLongA"
(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong
PrivateDeclareFunctionSetWindowPosLib"
(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLong
PrivateConstSWP_NOSIZE=&
H1
PrivateConstSWP_NOZORDER=&
H4
PrivateConstSWP_NOMOVE=&
H2
PrivateConstSWP_DRAWFRAME=&
H20
PrivateConstGWL_STYLE=(-16)
PrivateConstWS_THICKFRAME=&
H40000
PrivateConstWS_DLGFRAME=&
H400000
PrivateConstWS_POPUP=&
H80000000
PrivateConstWS_CAPTION=&
HC00000
PrivateConstWS_SYSMENU=&
H80000
PrivateConstWS_MINIMIZEBOX=&
H20000
PrivateConstWS_MAXIMIZEBOX=&
H10000
PrivateConstWS_MINIMIZE=&
H20000000
PrivateConstWS_MAXIMIZE=&
H1000000
--------------------------------------------------------------------------------
例子一:
任何一个控件(只要有窗口,这是我们的前提,下同),你可以在运行时随便更改它的大小。
PrivateSubControlSize(ControlNameAsControl,SetTrueAsBoolean)
DimdwStyleAsLong
dwStyle=GetWindowLong(ControlName.hwnd,GWL_STYLE)
IfSetTrueThen
dwStyle=dwStyleOrWS_THICKFRAME
Else
dwStyle=dwStyle-WS_THICKFRAME
EndIf
dwStyle=SetWindowLong(ControlName.hwnd,GWL_STYLE,dwStyle)
SetWindowPosControlName.hwnd,ControlName.Parent.hwnd,0,0,0,0,SWP_NOZORDEROrSWP_NOSIZEOrSWP_NOMOVEOrSWP_DRAWFRAME
EndSub
用法:
ControlSizepicture1,true;
设置第二个参数为False取消这种设置,下同
例子二:
任何一个控件,我们都可以控制其显示风格为对话框的风格。
PrivateSubControlDialog(ControlNameAsControl,SetTrueAsBoolean)
dwStyle=dwStyleOrWS_DLGFRAME
dwStyle=dwStyle-WS_DLGFRAME
ControlSizepicture1,true
例子三:
任何一个控件,我们都可以控制其显示风格为模式对话框的风格
PrivateSubControlModal(ControlNameAsControl,SetTrueAsBoolean)
dwStyle=dwStyleOrWS_POPUP
dwStyle=dwStyle-WS_POPUP
ControlModalPicture1,true
例子四:
任何一个控件,我们都可以给它加上标题栏,通过拖动标题栏,可以实现控件的运行时移动。
PrivateSubControlCaption(ControlNameAsControl,SetTrueAsBoolean)DimdwStyleAsLong
dwStyle=dwStyleOrWS_CAPTION
dwStyle=dwStyle-WS_CAPTION
S