2022-12-13 00:28来源:m.sf1369.com作者:宇宇
窗体总在最前 Private Declare Function SetWindowPos Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long _ ) As Long Const HWND_TOPMOST = -1 Const SWP_SHOWWINDOW = &H40 Private Sub Form_load() Dim retValue As Long '将窗体设置为处于所有窗口的顶层,注意在 VB 中运行时,可能不行,但编译成EXE后就可以了 retValue = SetWindowPos(Me.hwnd, HWND_TOPMOST, Me.CurrentX, Me.CurrentY, 300, 300, SWP_SHOWWINDOW) End Sub
在属性窗口中选择StartUpPosition属性,然后选择值2-屏幕中心。
vb6建立主窗体的子窗体有两种方法:
第一种方法是建立一个MDI窗体,然后把普通的form窗体设置成它的子窗体。
第二种方法是使用Windows API设置一个普通form窗体为另外一普通窗体的子窗体。 一、先来看看如何建立MDI窗体的子窗体:
1、启动vb6,新建一个标准EXE工程。
2、在“工程”菜单里选择“添加MDI窗体”, 点击“打开”,添加了一个MDIForm1窗体, 这步也可以工程窗口的窗体图标上右键完成。
3、在“工程”菜单里选择“XXX 属性”, 在弹出的窗口里把启动对象设成MDIForm1。
4、在form1的属性窗口里,把MDIChild属性设置为True。
5、在Private Sub MDIForm_Load()过程里添加form1.show。
6、运行程序,看到设置已经成功。 二、使用Windows API建立子窗体:
1、1、启动vb6,新建一个标准EXE工程。
2、在“工程”菜单里选择“添加窗体”, 点击“打开”,添加了一个form2窗体, 这步也可以工程窗口的窗体图标上右键完成。
3、双击form1窗体,在通用里加入以下windows API: Private Declare Function SetParent Lib "user32.dll" ( _ ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long 4、在form1的Private Sub Form_Load()过程里加入 Form2.Show SetParent Form2.hWnd, Form1.hWnd Form2.Move 0, 0 5、运行程序,可以看form2已经是form1的子窗体了。
6、完整程序代码如下:
Option Explicit Private Declare Function SetParent Lib "user32.dll" ( _ ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long Private Sub Form_Load() Form2.Show SetParent Form2.hWnd, Form1.hWnd Form2.Move 0, 0 End Sub
form1的BorderStyle属性设置为1-fixed Style,大小不可变 form1的MaxButton 属性设置为false 最大化按钮无效
comboBox 在VB中,Combo Box(组合框)控件很简单,可以节省空间。从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。 利用函数 AddString()向 Combo Box 控件添加Items
(1)Click 事件 。在程序运行时单击窗体内的某个位置,Visual Basic将调用窗体的Form_Click事件。如果单击的是窗体内的控件,则只能调用相应控件的Click事件。
示例代码: Private Sub Form_Click() Caption = 鼠标单击 Print 欢迎使用VB End Sub 代码说明:标题栏显示“鼠标单击”,窗体显示欢迎使用VB。
(2)DblClick 事件。程序运行时双击窗体内的某个位置,就触发了两个事件,第一次按动鼠标时,触发Click事件,第二次产生DblClick事件。
(3)Initialize初始化事件与 Load事件。 在程序运行时,当窗体被装入工作区时开始为Initialize之后才触发它的Load事件。所以该事件通常用来在启动应用程序时,对控件属性和变量初始化。
(4)Unload事件。卸载窗体时触发该事件。
(5)Resize事件。当窗体大小发生改变时,将触发一个Resize事件。
(6)Activate和Deactivate事件。Activate,当一个对象成为活动窗口时发生。Deactivate,当一个对象变为非活动(Deactivate)事件当在程序运行过程中,一个窗体变为非活动窗体时,则产生该事件。
(7)MouseDown事件。按下鼠标任意键时产生
(8)MouseMove事件。按下鼠标任意键,并移动鼠标时产生。
(9)MouseUp事件。放开鼠标任意键时产生。
(10)DragDrop事件。鼠标点住某一对象并拖动,直到放开鼠标键时才发生该事件,在拖放过程中,不发生DragDrop事件。
(11)KeyDown事件和KeyUp事件。按下键盘上的任意一个键,就会引发当前具有焦点的对象的KeyDown事件。释放时,则会引发该对象的KeyUp事件。
(12)KeyPress事件。按下键盘上与ASCII字符对应的键时,触发KeyPress事件。KeyPress事件能识别的ASCII字符包括:字母键、数字键、标点符号键以及Enter键、Tab键和Backspace键。也就是说,在键盘上除了按这些键以外,按其它键不会引发KeyPress事件。 ASCII码值是以按键上的字符为准。同一按键上的字符有大小之分,所以按下同一个键时,ASCII码值是不一样的。例如,“A”和“a”的ASCII码值不一样。
(13)Paint事件。窗体重绘事件,窗体被移动或放大之后,或在一个覆盖该窗体的窗体被移开之后,该对象部分或全部暴露时,此事件发生。如果需要代码中各种图形方法的输出,则 Paint 事件过程就很有用。使用 Paint 过程,可以确保这样的输出在必要时能被重绘。
在VB中,控件的Stretch属性设置为(False )时,图像框可自动改变大小以适应其中的图形。 图像框是一个简化的图形控件。在窗体设计时,用于显示保存的图片数据,其上是无法进行绘图的。图像控件的常用属性与其他控件类似。它的独立属性是Stretch属性和Picture属性。 其中Stretch属性决定控件能否将加载的图片缩放到控件本身的大小来显示。该属性的值是一个布尔型数据。
为True时,加载图形后,改变图形大小使之适应图像框的大小。为False 时,改变控件大小是之符合图形大小。
窗体总在最前 Private Declare Function SetWindowPos Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long _ ) As Long Const HWND_TOPMOST = -1 Const SWP_SHOWWINDOW = &H40 Private Sub Form_load() Dim retValue As Long '将窗体设置为处于所有窗口的顶层,注意在 VB 中运行时,可能不行,但编译成EXE后就可以了 retValue = SetWindowPos(Me.hwnd, HWND_TOPMOST, Me.CurrentX, Me.CurrentY, 300, 300, SWP_SHOWWINDOW) End Sub
1.首先,打开WPS/Excel VB编辑器,点击“插入”,选择“用户窗体”。
2.在“用户窗体”上建立三个标签作为实例进行说明如何实现WPS/Excel VBA用户窗体标签排版的优化。
3.首先选中三个标签,依次选择“格式”、“对齐”、“左对齐”。先让三个标签进行左对齐的排版形式。
4.三个标签的大小不一,我要统一标签的格式。
实现步骤:格式——统一尺寸——两者都相同
5.标签格式虽然统一了,但垂直距离还很大。我们可以通过“格式”——“垂直距离”——“减少”来进行缩减三个标签之间的垂直距离,这个操作可以需要若干次来完成,具体的次数看具体情况而定。
6.标签的垂直距离减少了,但三个标签间的垂直距离不一致,我们通过“格式”——“垂直距离”——“相同”来实现。