VB中界面的设计原则及美化
VB编程之路-如何让界面美化
减小字体 增大字体
如果大家用过《Windows优化大师》,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更爽,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不爽,看看VB是怎么利用别的东东来实现的吧。
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,
LblBtn(Index).BackColor = LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色
End Sub
Private Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’鼠标在LblBtn上面移动时触发该事件
Appearance 0
BorderStyle 1
MutilLine True
千万不要设置ScrollBars属性,否则会影响效果
在Form的Load事件中初始化TextBox
Dim bkColor As Long
Private Sub Form_Load()
bkColor=RGB(235,235,235)
Else
LblBtn(Index).BackColor = LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景
End If
Next Count
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
利用VB做精美桌面
【VB】利用VB做美化界面如果大家用过《Windows优化大师》,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更好,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不好,看看VB是怎么利用别的东西来实现的吧。
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,Name: LblBtn,BorderStyle: 1,Appearance: 0,Alignment: 2,这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name 属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:Private Const LBL_BACK_COLOR = &HE0E0E0 ’正常时Label控件的背景色Private Const LBL_WHEN_MOUSE_MOVE = &HC0C0C0 ’鼠标移动时Label的背景色Private Const LBL_WHEN_MOUSE_DOWN = &H808080 ’鼠标按下时Label的背景色再在Form的Load事件中输入以下内容Private Sub Form_Load()Dim Count As IntegerFor Count = 0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景Next CountEnd Sub然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’当鼠标按在LblBtn上时LblBtn(Index).BackColor = LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色End SubPrivate Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’鼠标在LblBtn上面移动时触发该事件Dim Count As IntegerDoEvents ’暂时将系统控制权教给系统If Button Then Exit Sub ’如果按钮被按下就退出该过程For Count = 0 To 3If Count <> Index Then ’如果按下的不是其它按钮LblBtn(Index).BackColor = LBL_BACK_COLOR ’将背景设为正常ElseLblBtn(Index).BackColor = LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景End IfNext CountEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)Dim Count As IntegerDoEventsFor Count=0 To 3LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景Next CountEnd本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label 控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)OK,Label控件就讲到这里,在来说说TextBox控件,各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red,Green,Blue这三个参数若一样,则产生的颜色是灰度,当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235,235),各位还是实战一下,将一个TextBox拖到窗体上,属性设置如下Appearance 0BorderStyle 1MutilLine True千万不要设置ScrollBars属性,否则会影响效果在Form的Load事件中初始化TextBoxDim bkColor As LongPrivate Sub Form_Load()bkColor=RGB(235,235,235)Text1.BackColor=bkColorEnd Sub在Form和Text1的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)Text1.BorderStyle = 0End SubPrivate Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)DoEventsText1.BorderStyle = 1End Sub在按下F5试试是不是很Cool?可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,首先声明:Private Type POINTAPIx As Longy As LongEnd TypePrivate Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As LongPrivate Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As LongPrivate Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,Private Declare Function nSetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long只要Alias指向的接口是对的前面的函数名称简直就是摆设,在建立一个过程:Public Function sSetFocus() As LongDim CPos As POINTAPI,Successfull As Boolean,hWnd As LongDoEventsSuccessfull =GetCursorPos(CPos)If Not Successfull Then Exit Sub ’如果未成功则退出该过程hWnd=WindowFromPoint(CPos.x,CPos.y)sSetFocus=nSetFocus(hWnd)End Sub在窗体上放一个Timer控件,Interval 属性设为100,就是0.1秒,在Timer1控件的Timer事件中填入sSetFocus,在运行一下看看,效果怎么样?可是有的先生小姐要问了,TextBox难道就不能用ScrollBar吗?非也非也,选工程->部件->Microsoft Windows Common Controls-2 6.0 (SP3)就是你的答案,至于卷动TextBox就去研究SendMessage函数吧,否则又有骗稿费之嫌,如果想作绿色软件,不想用控件,可以用俺前面讲到的Label控件,利用字体 Webdings 来模拟ScrollBar,需要注意的是,如果模拟ScrollBar,上下左右箭头分别是5,6,3,4,别忘了把字体设为Webdings再来讲讲窗体的美化,其实将BorderStyle属性设为0就是很好的2D美化;)可是,这样一来,问题又来了,怎么办?凡事都要请API来帮忙,这里需要两个API,一下是该API的声明:Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" ()As Long 注释:这个API是用来解下鼠标的追踪器,关于他的过多用法以及详细介绍可以写信向俺咨询,还有Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long’这个该不要俺多介绍了吧Public Const HTCAPTION = 2 ’代表窗体的标题区Public Const WM_NCLBUTTONDOWN = &HA1 ’表示非工作区左键按下原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:Public Sub MoveForm(hWnd As Long)DoEventsReleaseCaptureSendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&End Sub在Form的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)If Button=vbLeftButton Then MoveForm hWnd’如果按下鼠标左键就移动窗体End Sub台下的这位小姐又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为小姐推荐俺的东东-ActiveX控件,ToolSign,需要的人可以写信给俺联系,该控件需要在代码编辑区域内添加一下代码:’一下声明是用在ToolSign的 AutoQuit属性的Public Const EXIT_FORCE = 2 ’注意,在VB中运行的时候如果选用此退出方式,VB也会退出Public Const EXIT_MESSAGE = 1 ’由操作系统发送关闭消息Public Const EXIT_CUSTOM = Not (EXIT_FORCE Or EXIT_MESSAGE)’自定义将其注册后在部件栏中把e-Dogkid Studio Tools Sign打钩,添加到工具箱中,双击加入到窗体中,在Form的Load事件中添加一下初始化代码:Private Sub Form_Load()With Sign1.AutoQuit = EXIT_CUSTOM.ParentsHWND = hWnd ’填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码End WithEnd SubSign1的Click事件Private Sub Sign1_Click()End ’关闭程序End Sub在Form的Resize事件中添加一下代码:Private Sub Form_Resize()Sign1.Width = WidthEnd Sub如果想让窗体可以改变大小,可以修改一下属性Caption ""BorderStyle 2或5ControlBox False不知道各位看关见过爆炸试的窗体没有?,没有见过可以从俺要另外一个俺自己的ActiveX DLL,我的那个东东其实是给我的Software作运行库的,各位若不嫌弃,可以用用,注册后在工程->引用->e-Dogkid Runtime Library然后在窗体Load事件中输入:Private Sub Form_Load()Dim System As e_Dogkid_Runtime_Library.SystemSet System = New e_Dogkid_Runtime_Library.SystemShowSystem.BoomIt hDC, 60, Width, Height, Left, TopSet System = NothingEnd Sub。
vb界面美化
2010-11-02 22:45【转】vb界面美化vb界面如何美化一、网上搜索VB皮肤控件,一般为了更加美化都是做异性窗体,用图片做背景,然后去掉窗体边框,设置窗体颜色为透明,这个在这里就不详细说,还要加上拖动无边框窗体的代码,这样就可以了,至于其他按钮也可以用图片代替下面这个图片是我做的仿酷狗播放器,全是由图片构成的二、利用VB做美化界面如果大家用过《Windows优化大师》,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更好,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不好,看看VB是怎么利用别的东西来实现的吧。
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,Name: LblBtn,BorderStyle: 1,Appearance: 0,Alignment: 2,这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label 控件的Name属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:Private Const LBL_BACK_COLOR =&HE0E0E0 ’正常时Label控件的背景色Private Const LBL_WHEN_MOUSE_MOVE =&HC0C0C0 ’鼠标移动时Label的背景色Private Const LBL_WHEN_MOUSE_DOWN =&H808080 ’鼠标按下时Label的背景色再在Form的Load事件中输入以下内容Private Sub Form_Load()Dim Count As IntegerFor Count =0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1 LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景Next CountEnd Sub然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’当鼠标按在LblBtn上时LblBtn(Index).BackColor =LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色End SubPrivate Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’鼠标在LblBtn上面移动时触发该事件Dim Count As IntegerDoEvents ’暂时将系统控制权教给系统If Button Then Exit Sub ’如果按钮被按下就退出该过程For Count = 0 To 3If Count <> Index Then ’如果按下的不是其它按钮LblBtn(Index).BackColor =LBL_BACK_COLOR ’将背景设为正常ElseLblBtn(Index).BackColor =LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景End IfNext CountEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim Count As IntegerDoEventsFor Count=0 To 3LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景Next CountEnd本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)OK,Label控件就讲到这里,在来说说TextBox控件,各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red,Green,Blue这三个参数若一样,则产生的颜色是灰度,当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235,235),各位还是实战一下,将一个TextBox拖到窗体上,属性设置如下Appearance 0BorderStyle 1MutilLine True千万不要设置ScrollBars属性,否则会影响效果在Form的Load事件中初始化TextBoxDim bkColor As LongPrivate Sub Form_Load()bkColor=RGB(235,235,235)Text1.BackColor=bkColorEnd Sub在Form和Text1的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.BorderStyle = 0End SubPrivate Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)DoEventsText1.BorderStyle = 1End Sub在按下F5试试是不是很Cool?可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,首先声明:Private Type POINTAPIx As Longy As LongEnd TypePrivate Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As LongPrivate Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long Private Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByValhwnd As Long) As Long但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,Private Declare Function nSetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long只要Alias指向的接口是对的前面的函数名称简直就是摆设,在建立一个过程:Public Function sSetFocus() As LongDim CPos As POINTAPI,Successfull As Boolean,hWnd As LongDoEventsSuccessfull =GetCursorPos(CPos)If Not Successfull Then Exit Sub ’如果未成功则退出该过程hWnd=WindowFromPoint(CPos.x,CPos.y)sSetFocus=nSetFocus(hWnd)End Sub在窗体上放一个Timer控件,Interval 属性设为100,就是0.1秒,在Timer1控件的Timer事件中填入sSetFocus,在运行一下看看,效果怎么样?可是有的先生小姐要问了,TextBox难道就不能用ScrollBar吗?非也非也,选工程->部件->Microsoft Windows Common Controls-2 6.0 (SP3)就是你的答案,至于卷动TextBox就去研究SendMessage函数吧,否则又有骗稿费之嫌,如果想作绿色软件,不想用控件,可以用俺前面讲到的Label控件,利用字体 Webdings 来模拟ScrollBar,需要注意的是,如果模拟ScrollBar,上下左右箭头分别是5,6,3,4,别忘了把字体设为Webdings再来讲讲窗体的美化,其实将BorderStyle属性设为0就是很好的2D美化;)可是,这样一来,问题又来了,怎么办?凡事都要请API来帮忙,这里需要两个API,一下是该API的声明:Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long 注释:这个API是用来解下鼠标的追踪器,关于他的过多用法以及详细介绍可以写信向俺咨询,还有Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)As Long’这个该不要俺多介绍了吧Public Const HTCAPTION = 2 ’代表窗体的标题区Public Const WM_NCLBUTTONDOWN =&HA1 ’表示非工作区左键按下原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:Public Sub MoveForm(hWnd As Long)DoEventsReleaseCaptureSendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&End Sub在Form的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=vbLeftButton Then MoveForm hWnd’如果按下鼠标左键就移动窗体End Sub台下的这位小姐又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为小姐推荐俺的东东-ActiveX控件,ToolSign,需要的人可以写信给俺联系,该控件需要在代码编辑区域内添加一下代码:’一下声明是用在ToolSign的 AutoQuit属性的Public Const EXIT_FORCE = 2 ’注意,在VB中运行的时候如果选用此退出方式,VB也会退出Public Const EXIT_MESSAGE = 1 ’由操作系统发送关闭消息Public Const EXIT_CUSTOM = Not (EXIT_FORCE Or EXIT_MESSAGE)’自定义将其注册后在部件栏中把e-Dogkid Studio Tools Sign打钩,添加到工具箱中,双击加入到窗体中,在Form的Load事件中添加一下初始化代码:Private Sub Form_Load()With Sign1.AutoQuit = EXIT_CUSTOM.ParentsHWND =hWnd ’填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码End WithEnd SubSign1的Click事件Private Sub Sign1_Click()End ’关闭程序End Sub在Form的Resize事件中添加一下代码:Private Sub Form_Resize()Sign1.Width = WidthEnd Sub如果想让窗体可以改变大小,可以修改一下属性Caption ""BorderStyle 2或5ControlBox False不知道各位看关见过爆炸试的窗体没有?,没有见过可以从俺要另外一个俺自己的ActiveX DLL,我的那个东东其实是给我的Software作运行库的,各位若不嫌弃,可以用用,注册后在工程->引用->e-Dogkid Runtime Library 然后在窗体Load事件中输入:Private Sub Form_Load()Dim System As e_Dogkid_Runtime_Library.SystemSet System = New e_Dogkid_Runtime_Library.SystemShowSystem.BoomIt hDC, 60, Width, Height, Left, TopSet System = NothingEnd Sub三、能够美化VB6软件界面的软件/s?wd=actskin4下载这个SDK,里面有个控件很不错,三行代码改外观:/u/20090303/02/fb11597e-66af-4f65-adb1-91014add6 89a.html这个SDK带了皮肤编辑器,默认有XP,OFFICE2007,VISTA等几种皮肤,当然也可以自己编辑个性皮可以用皮肤软件,像VBcrazy说的SkinSharp。
VB中界面的设计原则及美化
在开发应用程序中 ,为了使其更具吸引 力 ,有个良好的界面是非常重要的 。界面的设 计和美化不仅影响到它本身外观的可观赏性 , 而且对应用程序的可操作性也有不可忽视的 作用 。一个有着良好界面的应用程序往往会 给用户一个好印象 ,使用户易于接受并积极使 用 。良好的界面并不是只有专业的美术人员 才能设计出来 ,在 VB 中通过在窗体上拖曳控 件的方式为创建用户界面提供了非常简便的 方法 ,因此了解用户界面的设计原则及美化的 方法 ,是每个程序设计人员都要做的事情 。
For X = 1 To 80 hBrush = CreateSolidBrush ( RGB ( 0 , 0 , Col2 or) ) RetVal = FillRect (Me. hDC ,FillArea ,hBrush) RetVal = DeleteObject (hBrush) Color = Color - 4 If Color < 0 Then Color = 0 FillArea. top = FillArea. bottom FillArea. bottom = FillArea. bottom + StepSize Next Me. ScaleMode = OldMode End Sub 按 F5 运行 ,就会出现一个以从上至下 、由 浅至深的渐变蓝色为背景的窗口 。对上述代 码稍加改动 ,便可制作出各种颜色和水平方向 的渐变背景 。
第7章 VB界面设计
第12页
2. 弹出式菜单 弹出式菜单是显示于窗体上,独立于菜单栏的浮动 式菜单。菜单上显示的项取决于鼠标右键按下时指针的 位置。又称为上下文菜单、快捷菜单。
第13页Βιβλιοθήκη 7.2.1 菜单编辑器“菜单编辑器”的4种可打开方式: 1)“工具”菜单->“菜单编辑器”命令。 2) 工具栏-> 3)窗体上单击鼠标右键,弹出菜单上选 “菜单编辑器”命令。 4)选中窗体后,使用热键“Ctrl+E”。
菜单项 快捷键 Ctrl+O Ctrl+S
文件(&F)
....打开(&O) ....保存(&S)
名 称 menuFile menuOpen menuSave
选中的复选框
有效、可见
有效、可见 有效、可见
....打印(&P)
....退出(&X) 格式(&O) ....粗体(&B)
Ctrl+P
menuPrint
1. 创建和设计MDI窗体及其子窗体 (1) 创建和设计MDI窗体 “工程” → “添加MDI窗体”命令
标准窗 体 MDI窗体
MDI子窗体
第7页
(2) 创建和设计MDI子窗体 创建: MDI子窗体是一个MDIChild属性为True的普通 窗体。要创建多个子窗体,通过窗体类来实现: Public Sub FileNewProc() Dim NewDoc As New frmMDIChild No = No + 1 NewDoc.Caption = "no" & No NewDoc.Show End Sub 设计:可有菜单栏,但必须有文本框。
第3页
3. 设置启动窗体 “工程” → “属性” → “启动对 象”
利用VB做精美桌面
利用VB做精美桌面【VB】利用VB做美化界面如果大家用过《Windows优化大师》,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更好,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不好,看看VB是怎么利用别的东西来实现的吧。
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,Name: LblBtn,BorderStyle: 1,Appearance: 0,Alignment: 2,这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name 属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:Private Const LBL_BACK_COLOR =&HE0E0E0 ’正常时Label 控件的背景色Private Const LBL_WHEN_MOUSE_MOVE =&HC0C0C0 ’鼠标移动时Label的背景色Private Const LBL_WHEN_MOUSE_DOWN =&H808080 ’鼠标按下时Label的背景色再在Form的Load事件中输入以下内容Private Sub Form_Load()Dim Count As IntegerFor Count =0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景Next CountEnd Sub然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’当鼠标按在LblBtn上时LblBtn(Index).BackColor =LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色End SubPrivate Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’鼠标在LblBtn上面移动时触发该事件Dim Count As IntegerDoEvents ’暂时将系统控制权教给系统If Button Then Exit Sub ’如果按钮被按下就退出该过程For Count = 0 To 3If Count <> Index Then ’如果按下的不是其它按钮LblBtn(Index).BackColor =LBL_BACK_COLOR ’将背景设为正常ElseLblBtn(Index).BackColor =LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景End IfNext CountEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)Dim Count As IntegerDoEventsFor Count=0 To 3LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景Next CountEnd本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label 控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)OK,Label控件就讲到这里,在来说说TextBox控件,各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red,Green,Blue这三个参数若一样,则产生的颜色是灰度,当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235,235),各位还是实战一下,将一个TextBox拖到窗体上,属性设置如下Appearance 0BorderStyle 1MutilLine True千万不要设置ScrollBars属性,否则会影响效果在Form的Load事件中初始化T extBoxDim bkColor As LongPrivate Sub Form_Load()bkColor=RGB(235,235,235)Text1.BackColor=bkColorEnd Sub在Form和Text1的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)Text1.BorderStyle = 0End SubPrivate Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)DoEventsText1.BorderStyle = 1End Sub在按下F5试试是不是很Cool?可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,首先声明:Private Type POINTAPIx As Longy As LongEnd TypePrivate Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As LongPrivate Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As LongPrivate Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,Private Declare Function nSetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long只要Alias指向的接口是对的前面的函数名称简直就是摆设,在建立一个过程:Public Function sSetFocus() As LongDim CPos As POINTAPI,Successfull As Boolean,hWnd As LongDoEventsSuccessfull =GetCursorPos(CPos)If Not Successfull Then Exit Sub ’如果未成功则退出该过程hWnd=WindowFromPoint(CPos.x,CPos.y)sSetFocus=nSetFocus(hWnd)End Sub在窗体上放一个Timer控件,Interval 属性设为100,就是0.1秒,在Timer1控件的Timer事件中填入sSetFocus,在运行一下看看,效果怎么样?可是有的先生小姐要问了,TextBox难道就不能用ScrollBar吗?非也非也,选工程->部件->Microsoft Windows Common Controls-2 6.0 (SP3)就是你的答案,至于卷动TextBox就去研究SendMessage函数吧,否则又有骗稿费之嫌,如果想作绿色软件,不想用控件,可以用俺前面讲到的Label控件,利用字体Webdings 来模拟ScrollBar,需要注意的是,如果模拟ScrollBar,上下左右箭头分别是5,6,3,4,别忘了把字体设为Webdings再来讲讲窗体的美化,其实将BorderStyle属性设为0就是很好的2D美化;)可是,这样一来,问题又来了,怎么办?凡事都要请API来帮忙,这里需要两个API,一下是该API的声明:Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" ()As Long 注释:这个API是用来解下鼠标的追踪器,关于他的过多用法以及详细介绍可以写信向俺咨询,还有Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long,ByVal wParam As Long, lParam As Any)As Long’这个该不要俺多介绍了吧Public Const HTCAPTION =2 ’代表窗体的标题区Public Const WM_NCLBUTTONDOWN =&HA1 ’表示非工作区左键按下原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:Public Sub MoveForm(hWnd As Long)DoEventsReleaseCaptureSendMessage hWnd,WM_NCLBUTTONDOWN,HTCAPTION, 0&End Sub在Form的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)If Button=vbLeftButton Then MoveForm hWnd’如果按下鼠标左键就移动窗体End Sub台下的这位小姐又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为小姐推荐俺的东东-ActiveX控件,T oolSign,需要的人可以写信给俺联系,该控件需要在代码编辑区域内添加一下代码:’一下声明是用在T oolSign的 AutoQuit属性的Public Const EXIT_FORCE =2 ’注意,在VB中运行的时候如果选用此退出方式,VB也会退出Public Const EXIT_MESSAGE =1 ’由操作系统发送关闭消息Public Const EXIT_CUSTOM =Not (EXIT_FORCE Or EXIT_MESSAGE)’自定义将其注册后在部件栏中把e-Dogkid Studio T ools Sign打钩,添加到工具箱中,双击加入到窗体中,在Form的Load事件中添加一下初始化代码:Private Sub Form_Load()With Sign1.AutoQuit = EXIT_CUSTOM.ParentsHWND =hWnd ’填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码End WithEnd SubSign1的Click事件Private Sub Sign1_Click()End ’关闭程序End Sub在Form的Resize事件中添加一下代码:Private Sub Form_Resize()Sign1.Width = WidthEnd Sub如果想让窗体可以改变大小,可以修改一下属性Caption ""BorderStyle 2或5ControlBox False不知道各位看关见过爆炸试的窗体没有?,没有见过可以从俺要另外一个俺自己的ActiveX DLL,我的那个东东其实是给我的Software 作运行库的,各位若不嫌弃,可以用用,注册后在工程->引用->e -Dogkid Runtime Library然后在窗体Load事件中输入:Private Sub Form_Load()Dim System As e_Dogkid_Runtime_Library.SystemSet System = New e_Dogkid_Runtime_Library.SystemShowSystem.BoomIt hDC, 60, Width, Height, Left, TopSet System = Nothing End Sub。
VB程序界面设计
VB程序界面设计VB是一种基于事件驱动的编程语言,常用于开发Windows应用程序的用户界面。
程序界面设计对于VB程序的用户体验至关重要,好的界面设计可以提升用户的使用体验,提高程序的易用性和功能性。
下面将详细介绍VB程序界面设计的要点和原则。
1.界面布局要合理:VB程序的界面布局应该符合逻辑顺序,使用户可以轻松找到需要的功能和信息。
主要功能模块应该被置于窗口的显眼位置,并按照重要性进行排列。
相似的功能应该归类在一起,方便用户查找。
2.界面元素要直观:VB程序的界面元素,如按钮、文本框、下拉框等控件,应该具有直观的视觉效果,使用户可以直观地了解其功能和用途。
按钮应该有明确的标识,文本框和下拉框应该有默认值或提示文本,以提供相关的信息。
3.功能导航要清晰:VB程序的界面应该提供清晰明了的功能导航,使用户可以方便地找到需要的功能。
一般可以通过菜单栏、工具栏或导航栏来实现功能导航。
菜单栏提供了一级功能导航,工具栏提供了常用功能的快速访问,导航栏提供了程序的整体结构和主要功能。
4.输入反馈要及时:VB程序的界面应该能够及时地给出用户的输入反馈,以提高用户的操作效率和体验。
例如,在用户点击按钮之后,界面应该立即给出相应的反馈,如弹出提示框或改变按钮的状态。
5.错误提示要友好:VB程序的界面应该给出友好的错误提示,帮助用户识别和纠正操作错误。
错误提示信息应该明确、简洁,并且给出相应的解决方案。
例如,当用户输入不合法时,界面可以弹出一个提示框,告诉用户输入不合法,并提供相应的解决方式。
6.界面美观要素:VB程序的界面应该注重美观,以提高用户对程序的好感度和使用欲望。
界面元素的颜色、样式应该协调一致,避免刺眼的颜色和过分复杂的样式。
同时,界面的排版和字体的选择也应该考虑到用户的视觉感受,使界面整体看起来舒适、清晰。
7.简化操作要点:VB程序的界面应尽可能地简化用户的操作步骤,以提高用户的使用效率和舒适度。
可以采用一些技术手段,如自动填充、自动补全、批量操作等,来简化用户的重复操作或冗长操作。
VB应用程序界面设计
VB应用程序界面设计VB应用程序界面设计是指使用Visual Basic开发工具创建应用程序时,对应用程序界面进行设计的过程。
良好的应用程序界面设计可以提高用户体验,增加用户的使用舒适度和工作效率。
下面将从功能布局、色彩搭配、图标设计、交互设计等方面详细介绍VB应用程序界面设计的要点。
首先,功能布局是VB应用程序界面设计的基础。
一个好的界面设计应该合理地组织和布置各个功能模块,使得用户能够快速、方便地找到需要的功能。
在进行功能布局时,应该考虑到各个功能的重要性和使用频率,将常用功能放置在突出醒目的位置,以方便用户的操作。
同时,应尽量避免过多的功能模块和按钮,以免给用户造成使用困扰。
其次,色彩搭配是VB应用程序界面设计的关键。
色彩对于界面的美观度和视觉体验非常重要。
在选择色彩搭配时,应选择温和、和谐的颜色,避免过于鲜艳刺眼的颜色。
同时,还应注意色彩对比度的选择,以确保用户能够清晰地看到界面上的各个元素。
对于不同的功能模块,也可以使用不同的颜色来区分,以便用户在界面上迅速辨识。
再次,图标设计是VB应用程序界面设计的亮点。
合理使用图标可以提高用户的使用效率和工作体验。
图标设计应遵循简约、直观、易懂的原则,尽量避免繁琐和复杂的图案。
同时,为了方便用户直观地了解图标的含义,应使用常见的、易识别的图标,如文件夹、打印、保存等。
图标的颜色也应与界面整体色彩搭配一致,以保持统一的美观度。
最后,交互设计是VB应用程序界面设计的核心。
好的交互设计可以提高用户的满意度和工作效率。
在进行交互设计时,应注重用户的使用习惯和习惯。
例如,将常用的功能按钮放置在易于点击的位置,设置适当的快捷键,使用直观的提示信息等。
同时,还应注意界面的反应速度,尽量避免耗时操作和界面卡顿,以增加用户的使用流畅度。
总之,VB应用程序界面设计是一个综合考量各个因素的过程,需要综合考虑功能布局、色彩搭配、图标设计、交互设计等多个因素,以实现良好的用户体验和工作效率。
(2)VB用户界面设计
(2)VB用户界面设计source:窗体一、Form 属性·Name 属性:用于在属性窗口定义对象的名称,以便在程序中引用。
它只能在设计时赋值。
对于任何一个可以在属性窗口设置其属性的对象必须设置该属性的值,VB自动为每一个对象给定一个缺省值。
·Caption 属性:属性用于获取、设置窗体的标题。
·BorderStyle 属性:用于设置窗体的边框。
它常用的有两个值:普通窗体(2-Sizable):可修改窗体的尺寸。
对话框(3-FixedDialog):不能修改窗体的尺寸。
·Top,Left,Width,Height 属性:它们分别表示该窗体在父窗体或屏幕的位置(Top,Left)和大小(Width,Height)。
·ScaleTop,ScaleLeft,ScaleWidth,ScaleHeight 属性:它们分别表示该窗体工作区的位置和大小。
二、Form 方法1、显示一个窗体。
FormX.Show[vbModal]没有vbModeless表示以非模式方式显示一个窗体。
带有vbModal表示以模式方式显示一个窗体。
2、隐藏一个窗体。
FormX.Hide隐藏窗体并不把窗体从内存中卸载,要卸载窗体需要使用语句:Unload FormX或:UnLoad Me (Me 表示当前窗体)三、Form 事件1、Load 事件:当窗体加载到内存时发生Private Sub Form_Load()... '常把初始化代码放在此处End Sub2、Resize 事件:当窗体改变其尺寸时发生Private Sub Form_Resize()... '常在此处修改其它控件的尺寸End Sub3、Unload 事件: 当窗体从内存卸载时发生Private Sub Form_Unload(Cancel As Integer)... '在窗体卸载前做一些扫尾工作。
VBA用户界面设计与优化指南
VBA用户界面设计与优化指南VBA(Visual Basic for Applications)是一种用于创建自定义应用程序的编程语言,常用于Microsoft Office软件中的自动化和定制任务。
在使用VBA创建用户界面时,设计和优化界面是非常重要的,可以增强用户体验和提高工作效率。
下面是一些建议的指南,帮助您设计和优化VBA用户界面。
1.确定用户需求:在设计VBA用户界面之前,首先要明确用户的需求和使用场景。
了解用户的工作流程和习惯,可以帮助您设计出更加符合用户期望的界面。
2.简洁明了:VBA用户界面应该是简洁明了的,避免过多的装饰和复杂的设计。
通过合理的布局和清晰的标识,让用户能够快速找到他们需要的功能。
3.一致性:保持用户界面的一致性是非常重要的。
统一的字体、颜色和布局可以提升用户体验,减少用户的学习成本和操作错误。
5.使用图标和按钮:使用图标和按钮可以提升用户界面的易用性。
合适的图标可以让用户更直观地了解功能,按钮可以帮助用户快速触发操作。
6.提供帮助和提示:在界面中提供帮助和提示是非常有用的。
可以使用工具提示、说明文字或者帮助按钮来向用户解释功能和操作,让用户能够更加轻松地使用应用程序。
7.错误处理:在设计用户界面时,应该考虑到可能出现的错误情况,并为用户提供相应的错误处理机制。
比如显示错误消息、提供修复建议等,让用户知道出了什么问题以及如何解决。
8.响应速度:保持界面的响应速度是非常重要的。
通过优化代码和避免过多的计算操作,可以提升用户体验,让用户感觉界面流畅和效率高。
9.测试和反馈:在设计完成之后,一定要进行充分的测试,确保用户界面的稳定性和功能完整性。
同时,接受用户的反馈和建议,及时调整和优化界面,以提升用户满意度。
总的来说,设计和优化VBA用户界面是一个综合考虑用户需求、界面布局、功能分组、交互设计等多方面因素的过程。
通过遵循上述指南,可以帮助您打造出更加用户友好和高效的VBA应用程序。
VB课件 第七章 界面程序设计
Βιβλιοθήκη 用户界面样式 界面设计原则 菜单程序设计
– – – – – VB的菜单 菜单编辑器 用菜单编辑器建立菜单 菜单项的增减 弹出式菜单
多重窗体设计 多文档界面设计 对话框设计 工具条和状态栏
7.1 用户界面样式
单文档界面
单文档界面是指在应用程序中每次只能打开一个文档, 若需要再打开另一个文档,则必须先关闭已打开的 文档。单文档界面时,不能将一个窗体包含在另一 个窗体中。
7
表:用于“标志 ” 的设置值
常数位置 vbPopupMenuLeftAlign vbPopupMenuCenterAlign vbPopupMenuRightAlign 常数行为 vbPopupMenuLeftButton vbPopupMenuRightButton
值 0 4 8 值 0 2
描述 缺省值。弹出式菜单的左边定位于 x。 弹出式菜单以 x为居中心。 弹出式菜单的右边定位于 x。 描述 缺省值。 仅当使用鼠标左按钮时, 弹出式 菜单中的项目才响应鼠标单击。 不论使用鼠标右按钮还是左按钮, 弹出式 菜单中的项目都响应鼠标单击。
10
不同窗体数据的存取
(1)直接访问另一个窗体上的控件数据 另一个窗体名.控件名.属性
Text1.text = Val(Form2.Text1.text) + Val(Form2.Text2.text)
(2)访问另一个窗体中的全局变量 另一个窗体名.全局变量名 例7.3多重窗体事例:输入学生五门课程的成绩, 计算总分及平均分并在不同窗体内显示。
– 手工制作:利用图形框和命令按钮,这种方法比较繁琐。 – 通过ToolBar、ImageList控件制作。
vb界面技巧
vb界面技巧(一)用了2年的VB,面对着越来越多的界面漂亮的程序,我问自己:为什么我开发的程序的界面没有那么漂亮?不能老是说:“程序的重点是功能,而不是界面”,那是欺骗自己的做法。
为了进一步掌握VB的界面设计技巧,我进行了分析和实验,并将结果总结出来,以利于大家参考。
(本文重点放在界面上,不是说程序的功能不重要,不要引起误解。
)一、了解界面所涉及到的元素当我们惊叹于一个漂亮的程序界面时,吸引我们眼球的,到底时什么?不过是:色调和形状。
色调,主要指各种颜色的搭配,可以利用图片背景和渐变填充效果获的更丰富的视觉效果。
形状,主要指窗体的位置控制和外部轮廓控制,经常涉及到不外乎:磁性窗体,异形窗体,可变窗体,自动隐藏。
在VB中,主要体现在一个对象的外观、位置、字体这几类属性上。
下面,我们针对以上元素,充分挖掘VB的潜力,看看如何利用VB设计漂亮的界面。
同时,我们还要考虑如何使这种方法程序化,以便于日后的运用。
在做进一步分析之前,我们要遵从一个约定,即:尽可能利用VB本身提供的功能。
好了,我们开始吧。
二、程序界面设计思路这一点很重要,不管是开发较大的工程项目,还是做很小的实用工具,我们往往习惯于忽略掉程序界面设计这个环节,在经过软件分析和设计(主要是数据结构)后,便匆忙开始编写各各功能模块,当然,相应的界面元素也就随手建立了。
等各部分代码都调试通过了,要发布软件时,我们才会发现:自己的姑娘虽然内秀,却面貌丑陋。
于是,赶紧做做美容。
这样出来的程序,界面一般都很普通,是Windows的标准风格。
物以稀为贵,天天见到Windows标准风格的程序,就不稀罕了。
要做出漂亮的程序界面,首先,我们得重视它,要把程序的界面设计当做一个必要环节来执行。
好了,这一点很容易,拿起PhotoShop或者3DMax吧,做好程序的界面设计。
(如何利用PhotoShop或者3DMax等工具设计程序界面的细节就省略了。
)三、如何将设计好的程序界面和程序结合起来?首先,要熟悉VB常用控件的界面属性,也就是每个对象的外观属性,在VB6的属性栏中,选择按分类排序,可以看到该对象所支持的外观属性。
VB程序界面设计
VB程序界面设计在VB程序界面设计过程中,以下是一些关键因素需要考虑的:1.界面布局:合理的布局能够使用户能够快速找到所需功能和信息,常见的布局方式包括居中对齐、流式布局等。
同时,还需要考虑窗口的大小和比例,以适应不同的屏幕分辨率和显示设备。
2.控件选择:VB提供了丰富的控件库,包括文本框、按钮、列表框等。
在设计时,需要选择合适的控件来展示和输入数据,以及实现程序功能。
同时,还可以通过自定义控件的方式,使界面更加独特和专业。
3.颜色和图标:合适的颜色和图标能够提升界面的美观度和易用性。
可以选择符合应用主题和风格的配色方案,并使用统一的图标和按钮样式,使用户更容易理解和识别功能。
4.文字和字体:程序中的文字需要清晰、易读,并且与界面风格统一、合适的字体和字号能够提高用户的阅读体验,同时需要注意文字的布局和对齐,以及特殊符号的使用。
5.状态提示:通过合适的状态提示能够提高用户交互的响应性和准确性。
例如,在长时间操作时,通过进度条或提示窗口显示操作进度,提醒用户等待。
另外,对于错误信息和警告信息,需要使用可视化的方式提示用户,并提供相关的解决方案。
6.功能导航:对于复杂的程序,需要提供易用的导航方式,以帮助用户快速切换功能。
可以设计菜单栏、工具栏或侧边栏等方式,同时可以使用快捷键和功能提高用户的操作效率。
7.帮助文档:在程序界面中提供帮助功能,帮助用户理解和使用程序。
可以编写用户手册、FAQ等文档,并提供功能。
另外,还可以在界面中添加工具提示等方式,对控件的功能和用法进行说明。
8.响应式设计:随着移动设备的普及,响应式设计是不可忽视的重要方面。
可以通过自适应布局和媒体查询等技术,实现在不同终端和屏幕尺寸下的自动适应。
总之,在VB程序界面设计过程中,需要从用户的角度出发,关注用户需求,并结合开发技术和界面设计原则,创造出易用、美观和功能强大的用户界面。
通过合理的布局、控件选择、颜色和图标等设计手段,提升用户的操作体验和工作效率,从而提高程序的易用性和用户满意度。
VB第八章 界面设计
第二类: 颜色" 第二类:"颜色"对话框 此对话框用来显示一个调色板,供用户选择颜色或创建自定义颜色. 此对话框用来显示一个调色板,供用户选择颜色或创建自定义颜色. 如图所示. 如图所示. 使用CommonDialog控件的 使用 控件的ShowColor方法 方法 控件的 或设置Action属性来显示"颜色"对话框,其格 或设置 属性来显示"颜色"对话框, 属性来显示 式为: 式为: 即 控件名.ShowColor 控件名 或 控件名.Action=3 控件名 在程序运行时,选定颜色并关闭对话框后, 在程序运行时,选定颜色并关闭对话框后, 就可用CommonDialog的Color属性得到所选的 就可用 的 属性得到所选的 属性 颜色. 颜色.
(2)文件对话框的使用 ) 打开文件对话框 打开对话框用于打开某种类型的文件.在程序运行时, 打开对话框用于打开某种类型的文件.在程序运行时,通用对话框的 Action属性被设置为 或执行 属性被设置为1或执行 方法, 属性被设置为 或执行ShowOpen方法,就会弹出"打开"对话框, 方法 就会弹出"打开"对话框, 如图所示. 如图所示. 即 Commondialog1.action=1或 或 commondialog1.器)属性 过滤器 该属性用于确定文件列表框中所显示的文件的类型, 该属性用于确定文件列表框中所显示的文件的类型, 显示的文件的类型 其格式为: 其格式为:文件说明 | 文件类型 该属性值显示在"文件类型"列表框中. 该属性值显示在"文件类型"列表框中. 文件( ),文本文 如:要在"文件类型"列表框中列出WORD文件(*.DOC),文本文 要在"文件类型"列表框中列出 文件 ), 属性可设置为: 件(*.TXT)这两种文件类型,则Filter属性可设置为: )这两种文件类型, 属性可设置为 WORD文件 文件(*.DOC)|*.DOC|文本文件 文本文件(*.TXT)|*.TXT 文件 文本文件 FilterIndex属性 属性 当提供一个以上的过滤项目时,此属性可指定默认过滤项目. 当提供一个以上的过滤项目时,此属性可指定默认过滤项目. InitDir(初始化路径 属性 初始化路径)属性 初始化路径 该属性用于指定对话框中的初始目录;默认显示当前目录. 该属性用于指定对话框中的初始目录;默认显示当前目录.
第2章 VB的界面设计PPT课件
2020/8/11
3
边框样式 控制菜单框
2.1 窗体
图标
标题
最小化按钮 最小化按钮
窗体对象是创建 VB应用程序的基 础。是用户与应 用程序进行交互 工作区 操作的实际窗口。
2020/8/11
End Sub
Private Sub Form_Load ( )
窗体被装载时发生Load事件;当使用控制菜单中的 “关闭”命令或用Unload语句关闭该窗体时,发生从 屏幕上卸载窗体的Unload事件。
2020/8/11
10
3.Click/DblClick事件
单击窗体的空白区域或无效控件时发生Click事 件;双击窗体的空白区域或无效控件时发生 DblClick事件。来自2020/8/11
8
2.1.2 窗体的方法
窗体的方法也就是窗体所具有的行动方式。窗体上常 用的方法有:
方法
功能
Hide
隐藏窗体(不是卸载)
Move
移动窗体
在窗体中输出文本
PrintForm
打印窗体
Refresh
重新绘制窗体
Show
显示窗体
Cls
清除窗体中的图形或文本
窗口有双线边框,运行时窗口不包含最大与最小化按钮, 窗口大小不可改变
窗口包含一个关闭按钮,标题栏字体缩小,运行时不可 改变窗口大小
窗口包含一个关闭按钮,标题栏字体缩小,运行时可改
变C窗S口E大.C小
6
5.Enabled:活动属性
Enabled属性允许在程序运行时使对象成为有效或无效。 取值有两种:True(有效,这是缺省值)和False(无 效)。
VB用户界面设计
[例3-19] 利用画线控件和形状控件设计一指针式秒表如 图3-21所示。程序启动后,点击窗体上的“开始”按钮, 表的指针开始转动,每秒动一下,一分钟转一圈。指针 转动时,命令按钮的标题变为“暂停”,如果此时再点 击命令按钮,指针停止转动。命令按钮的标题又变为 “继续”,再点击,指针又开始转动。
3.10.2 MDI窗体的创建
1. 建立有一个子窗体的MDI窗体。(有六个操 作步骤 )
2. 建立有多个子窗体的MDI窗体。(有四个操 作步骤 )
3. 子窗体的排列 完成子窗体的排列操作,要使用
MDIForml的Arrange方法,其语法格式为: MDIForml 名称 .Arrange 排列方式
3.4.3 复选框(CheckBox)
[例3-13]设计一程序,通过复选框来控制用户 界面上的文本框中文字的字体、字型、颜色和 大小。
3.4.4 框架(Frame)
[例3-14]重新设计例3-13的用户界面,用框架 控件将9个单选按钮分为3组,一组用来改变文 本框中文字的字体;一组用来改变字的大小; 一组用来改变字的颜色。
[对象.] Pset [Step] (x, y), [color]
[例3-20] 利用Pset方法或Line方法均可以画出 任意曲线。下面用Pset方法在图片框中绘制 阿基米德螺旋线,用Line方法画一正弦曲线。
3.8 公用对话框
“公共对话框”(Common Dialog)控件 为用户提供了一组标准的系统对话框,可以 使用它进行打开或保存文件、设置打印选项、 选择各种颜色以及选择字体等的操作。另外 还可以通过调用Windows帮助引擎来显示应 用程序的帮助。
VBA用户界面设计和优化技巧
VBA用户界面设计和优化技巧VBA(Visual Basic for Applications)是一种基于Visual Basic语言的编程工具,广泛应用于Microsoft Office软件中,如Excel、Word和Access等。
通过使用VBA,您可以为这些软件创建自定义的用户界面,使其更符合您的需求。
在本文中,我们将介绍一些VBA用户界面设计和优化技巧,帮助您提高工作效率并提供更好的用户体验。
1. 布局和样式设计:在创建VBA用户界面时,良好的布局和样式设计是非常重要的,可以增强用户界面的可读性和可用性。
以下是一些布局和样式设计的技巧:- 使用容器控件,如Group Box和Frame,以将相关的控件组织在一起。
- 使用标签(Label)控件标识输入框、按钮等控件的用途,增加界面的可读性。
- 使用背景颜色和边框来突出显示重要的控件或区域。
- 使用字体、字号和颜色来调整文本框和标签的外观,使其易于阅读。
- 使用适当的间距和对齐方式来调整控件的布局,使其整齐有序。
2. 控件选择和使用:在设计VBA用户界面时,选择适当的控件非常关键,这将直接影响用户体验和界面的功能性。
以下是一些控件选择和使用的技巧:- 使用文本框(TextBox)控件来接收和显示用户的输入信息。
- 使用复选框(CheckBox)控件来实现二选一的选择。
- 使用选项按钮(Option Button)控件来实现多选一的选择。
- 使用下拉列表框(ComboBox)控件来提供用户选择的选项。
- 使用按钮(Button)控件来触发特定的操作和命令。
- 使用图片框(PictureBox)控件来显示图像和图表。
3. 错误处理和弹窗:在VBA编程中,错误处理是一个重要的方面,可以提高程序的稳定性和可靠性。
以下是一些错误处理和弹窗的技巧:- 使用条件语句和循环语句来检测和处理可能的错误。
- 使用MsgBox函数创建弹窗,向用户提供有用的信息和错误提示。
浅谈VisualBasic 中用户界面的设计原则
浅谈VisualBasic 中用户界面的设计原则发表时间:2009-03-30T15:09:28.060Z 来源:《中外教育研究》2009年第1期供稿作者:肖锋[导读] 一个好的应用程序要有美观且实用的界面设计,用户界面设计是应用程序的一个重要组成部分。
一个好的应用程序要有美观且实用的界面设计,用户界面设计是应用程序的一个重要组成部分,在设计程序时必须要合理的编排用户界面。
窗体是应用程序的设计场所,合理安排窗体内的各控件,是形成美观实用的用户界面的重要基础。
VisualBasic 通过在窗体上拖曳控件的方式为创建用户界面提供了非常简便的方法,窗体的设计和规划不仅影响它本身外观的可观赏性,而且对应用程序的可操作性也有很重要的作用。
一个良好的用户界面并不是只有专业的美术人员才能设计出来,大多数时候,这样的界面设计都是由程序设计人员完成,因此了解用户界面的设计原则,是每个程序设计人员都要做的事情。
虽然在某些时候,用户界面的设计并不是一件很重要的事情,但一个优秀的程序员在设计应用程序时,总是时时从用户角度出发,以方便用户的使用为程序设计的目标,而用户第一次接触应用程序就是从界面开始的,因此如何设计应用程序的界面在某些方面也有一些重要的意义。
大多数用户界面设计原则和任何基础美术课程中所教授的基础设计原则一样。
在计算机屏幕上组合颜色、文字、框架等的基本原则和在纸张上画图一样。
在开始之前做一点简单设计会加快应用程序的设计进程,有时,往往一个控件位置的安排就能让程序设计人员左右为难。
所以,在界面设计开始之前,可以先将设计的窗体画在纸上,然后考虑哪些控件是所需要的,以及不同元素的重要性、控件之间的联系等。
协调界面、组织窗体的工作包括控件的位置、大小、一致性编排与其它相关内容。
一、控件的位置拖放安排在绝大多数的程序界面设计中,并不是所有的元素都具有相同的重要性,所以应抓住重点,将较重要的元素定位在对用户来说处在一目了然的位置,重要的和需要经常访问的元素应当处于显著的位置,次要的元素则应当处于次要的位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
— 58 —
某些应 用 程 序 的 背 景 呈 现 美 观 而 又 富 有 立体感的花纹 ,我们可利用窗体的 Picture 属性 来调用图形文件 ,该方法非常简单且方便 ,但 该方法也有美中不足之处 ,一是图片大小受限 制 ,调整起来也较麻烦 ;二是浪费资源 ,因为一 般的花纹图案基本上都是由小图案重复构成 的。
另外 ,图片与图标的使用也可以提高应用 程序的可视效果 ,在某些时候不用文本而利用 图像就可以更形象地传达信息 。带有表示各 种功能图标的工具栏 ,是一种很有用的界面组 成 ,但如果不能很容易地识别图标所表示的功 能 ,反而会事与愿违 。在设计工具栏图标时 , 应仔细考察现在流行什么标准 ,尽量采用通行 的 、意义明确的图标 ,以免引起用户理解上的 歧义 。只要在整个应用程序中合理的利用各 种显示效果并能保持一致 ,这都能更好的促进 内容与形式的统一 。
2. 2 制作渐变的的界面背景色
— 57 —
VB 中界面的设计原则及美化
在许多应用程序中 ,经常可以看到以某种 颜色由浅至深的渐变作为背景的窗口 。使用 VB 制作这类窗口的方法有不少 ,而通过调用 API 函数绘制渐变的窗口背景色 ,似乎是一种 既简单又节省资源的方法 。
在 module 文件中加入下列声明语句 : Declare Function CreateSolidBrush Lib“GDI” (ByVal crColor As Long) As Integer Declare Function FillRect Lib“USER”(ByVal hDC As Integer ,lpRect As RECT ,ByVal hBrush As Integer) As Integer Declare Function DeleteObject Lib“GDI”(By2 Val hObject As Integer) As Integer Type RECT ’申明变量 left 、top 、right 、bottom 均为 Inte2 ger 类型 End Type Private Sub Form- Paint () ’申明变量 Color 、hBrush 、OldMode 、RetVal 、 StepSize 、X 均为 Integer 类型 ’申明变量 FillArea 为 RECT 类型 ’对各变量进行初始化设置
2. 界面美化
在遵循以上界面设计原则的基础上 ,再来 谈谈在 VB 中美化界面的几个小技巧 。
2. 1 制作半透明窗体
使用 SetLayeredWindowAttributes 函数 ,可以 轻松的实现半透明窗体 。按照微软的要求 ,透
明窗体窗体在创建时应使用 WS- EX-LAYERED 参数 (用 CreateWindowEx) ,或者在创建后设置 该参数 (用 SetWindowLong) ,我选用后者 。全部 函数 、常量声明如下 :
现不出应有的价值 ,不但对用户的使用带来不 便 ,甚至还会使用户觉得应用程序不可靠 。因 此设计界面时尽量与当前流行的应用程序风 格一致 。当今 Windows 应用程序一般都有标题 栏 、菜单栏 、工具栏和状态栏等 ,设计时如保持 这样的风格能使用户更容易接受 。另外整个 应用程序中各个界面的风格也要保持一致 。
1. 界面设计原则
Hale Waihona Puke 1. 1 简洁界面设计最重要的原则就是简洁与明了 。 对于应用程序而言 ,如果界面看上去很难 ,则 可能程序使用本身也比较复杂 ,而在设计时稍 稍深入考虑一下 ,便有助于创建看上去和用起 来都很简单的界面 。从美学的角度来讲 , 整 洁 、简单明了的设计更有可取性 。
1. 2 一致性
2006 年第 3 期 总第四十九期
常州工程职业技术学院学报
JOURNAL OF CHANGZHOU INSTITUTE OF ENGINEERING TECHNOLOGY
Vol . 3 2006 Sep No. 49
VB 中界面的设计原则及美化
王 侃 ①
常州工程职业技术学院
摘 要 良好的界面设计决定了应用程序的易用性和可操作性 ,设计界面时应遵循简洁 、一 致性 、重点突出 、内容和形式的统一的原则 ;在此基础之上 ,本文介绍了美化界面的几个小技 巧 ,如制作半透明窗体 、制作渐变背景色和界面背景花纹的制作 。 关键词 界面 设计原则 美化
— 56 —
VB 中界面的设计原则及美化
方 ,因为用户通常是要使用按钮来完成窗口的 操作 。将内容相似的控件适当的分组也是非 常重要的 ,按照控件在功能或关系上的联系 , 将它们放在一起 ,在视觉效果上也要比将它们 分散在屏幕的各处要好得多 ,也使得界面层次 分明 ,结构清晰 。
1. 4 内容和形式的统一
一致的外观将体现应用程序的协调性 ,如 果缺乏一致性就会使界面混乱而无序 ,这样的 界面将会使应用程序看起来混乱而不严密 ,体
条重要的信息 ,它的标题栏应当安排放在能被 用户第一眼看到的位置 , 而各种操作按钮如 “确 定 ”、“取 消 ”则 应 当 处 于 该 标 题 栏 的 右 下
① 作者简介 :王侃 ,女 ,讲师 。
Private Declare Function SetLayeredWindow Attributes Lib“user32”(ByVal hwnd As Long , By2 Val crKey As Long , ByVal bAlpha As Byte , ByVal dwFlags As Long) As Long 其中 hwnd 是透明窗体 的句柄 ,crKey 为颜色值 ,bAlpha 是透明度 ,取值 范围是[ 0 ,255 ] ,dwFlags 是透明方式 ,可以取两 个值 : 当取值为 LWA-ALPHA 时 ,crKey 参数无 效 ,bAlpha 参数有效 ;当取值为 LWA COLOR2 KEY时 ,bAlpha 参数有效而窗体中的所有颜色 为 crKey 的地方将变为透明 ———这个功能很有 用 :我们不必再为建立不规则形状的窗体而调 用一大堆区域分析 、创建 、合并函数了 ,只需指 定透明处的颜色值即可 。具体代码如下 :
Private Const WS EX LAYERED = &H80000 Private Const GWL EXSTYLE = ( - 20) Private Const LWA ALPHA = &H2 Private Const LWA COLORKEY = &H1 Private Sub Form Load () Dim rtn As Long rtn = GetWindowLong ( hwnd , GWL EX2 STYL E) rtn = rtn Or WS EX LAYERED SetWindowLong hwnd , GWL EXSTYLE , rtn SetLayeredWindowAttributes hwnd , 0 , 200 , LWA ALPHA End Sub
在开发应用程序中 ,为了使其更具吸引 力 ,有个良好的界面是非常重要的 。界面的设 计和美化不仅影响到它本身外观的可观赏性 , 而且对应用程序的可操作性也有不可忽视的 作用 。一个有着良好界面的应用程序往往会 给用户一个好印象 ,使用户易于接受并积极使 用 。良好的界面并不是只有专业的美术人员 才能设计出来 ,在 VB 中通过在窗体上拖曳控 件的方式为创建用户界面提供了非常简便的 方法 ,因此了解用户界面的设计原则及美化的 方法 ,是每个程序设计人员都要做的事情 。
grid1. SelStartCol = 0 grid1. SelStartRow = 0 grid1. SelEndCol = grid1. Cols - 1 grid1. SelEndRow = grid1. Rows - 1 grid1. Picture = Picture1. Picture End Sub Private Sub Form-Load ()
可以利用网格控件来实现背景花纹 。首 先在 VB 窗体上建立一个网格控件 ,使网格行 不可见 ,去掉固定行和固定列 。
然后设计一个花纹图案 ,形成 BMP 位图文 件 ,如 Pic1. bmp ,或者从其他图像中截取一段 图案 ,也可以利用 Windows 系统提供的图案 ,将 其调入 Picture 控件 。设定网格的每个单元与 该图案大小相同 ,使单元的数量正好覆盖整个 窗体背景 ,再将所以单元均显示该图案 。通过 子程序 BackPict ( ) 实现以上过程 ,不论图案大 小 、窗体大小 ,程序都能自动调整网格控件大 小和网格单元大小及单元数量 。参考代码如 下:
一致性原则在设计中是最容易被违反 ,同 时也最容易修改和避免的 ,因此在开发应用程 序之前就应建立设计风格 ,事先规定好设计要 素。
1. 3 重点突出
在绝大多数的程序界面设计中 ,并不是所 有的内容都具有一样的重要性 ,所以应抓住重 点 ,将较重要和经常用到的内容放在对用户来 说处在一目了然的 、显要的位置上 ,次要的内 容则应当处于次要的位置 。习惯的阅读顺序 一般是从左到右 ,从上到下 。按照此原则 ,用 户第一眼看到的应是计算机屏幕的左上部分 , 因此最重要的内容应当放在这里 。比如有一
For X = 1 To 80 hBrush = CreateSolidBrush ( RGB ( 0 , 0 , Col2 or) ) RetVal = FillRect (Me. hDC ,FillArea ,hBrush) RetVal = DeleteObject (hBrush) Color = Color - 4 If Color < 0 Then Color = 0 FillArea. top = FillArea. bottom FillArea. bottom = FillArea. bottom + StepSize Next Me. ScaleMode = OldMode End Sub 按 F5 运行 ,就会出现一个以从上至下 、由 浅至深的渐变蓝色为背景的窗口 。对上述代 码稍加改动 ,便可制作出各种颜色和水平方向 的渐变背景 。