Height返回或设置对象的维数、或 DataGrid 控件 Columns 对象的宽度。对于 Printer 和
Screen 对象,在设计时不可用。
语法:
object.Height [= number]
object.Width [= number]
number 数值表达式,指定对象的维数,“设置值”中有详细说明。
设置值:大小如下计算:
Form -窗体的外部高度和宽度,包括边框和标题栏。
Control -从控件边框的中心度量,以使边框宽度不同的控件能够正确对齐。这些属性使用控件容器的度量单位
Printer 对象-为打印设备设置的纸张物理尺寸,在设计时无效。如果在运行时设置该属性,则使用这些属性的值而不用
PaperSize 属性的设置。
Screen 对象-屏幕的高度和宽度;在设计时无效,在运行时为只读。
Picture 对象-以 HiMetric 为单位的图片的高度和宽度。
说明:
对于 Form、Printer 和 Screen 对象,这些属性值是以缇来度量的。对于窗体或控件,这些属性值随着用户或ol调整对象大小而改变。所有对象的这些属性的最大值与系统有关。
对不允许设置这些属性的打印机驱动程序,若设置 Height 和 Width 属性,不会发生错误但纸张的大小保持不变。
对只允许某些 缇值的打印机驱动程序,设置 Height 和 Width
属性时,不会发生错误,且该属性被设置为驱动程序所允许的值。例如,可以将 Height 设置成 150 但驱动程序可能会把它设置成
144。
对基于对象全区代作或计算,如改变对象大小或移动对象,要使用 Height、Width、Left 和 Top
属性。对基于对象内部区域的操作或计算,如在一对象内绘制或移动对象,要使用
ScaleLeft、ScaleTop、ScaleHeight 和 ScaleWidth 属性。
注意 DriveListBox 控件或 ComboBox 控件的 Height 属性不能改变,这两控件的 Style 属性设置为
0(下拉组合框)或 2(下拉列表框)。
对于 DataGrid 控件的 Columns 对象,Width 按包含 DataGrid的对象的度量单位来指定。Width
的缺省值为 DataGrid 的 DefColWidth 属性值。
对于 Picture 对象,用 ScaleX 和 ScaleY 方法将 HiMetric 单位转换为所需的单位。
例:这个例子在窗体被加载时,将窗体的大小设置为屏幕大小的百分之七十五并使窗体居中显示。要尝试这个例子,请将代码粘贴到窗体的声明部分。然后按
F5 键并单击窗体。
Private Sub Form_Click ()
Width = Screen.Width * .75 ' 设置窗体的宽度。
Height = Screen.Height * .75 ' 设置窗体的高度。
Left = (Screen.Width - Width) / 2 ' 在水平方向上居中显示。
Top = (Screen.Height - Height) / 2 ' 在垂直方向上居中显示。
End Sub
HelpContextID
为一个对象返回或设置一个相关联上下文的编号。它被用来为应用程序提供上下文有关的帮助。
语法:
object.HelpContextID [= number]
object 对象表达式,其值是“应用于”列表中的一个对象。如果 object 被删去,则与活动窗体模块相联系的窗体被认为是
object。
number 用来指定与 object 相关联的“帮助”主题上下文编号的数值表达式。
number 的设置为:
0 (缺省)没有上下文编号被指定。
> 0 用来指定有效上下文编号的一个整数。
说明:
对于应用程序中对象上下文有关的帮助,当编译帮助文件时,必须对 object 和相关联的帮助主题赋予相同的上下文编号。
如果已经为应用程序建立了 Microsoft Windows 操作系统环境的帮助文件并设置了应用程序的 HelpFile
属性,那么当用户按 F1 键时,Visual Basic 将自动地调用帮助并查找被当前上下文编号所定义的主题。
当前上下文编号是拥有焦点的对象的 HelpContextID 的值。如果 HelpContextID 被设为 0,那么
Visual Basic 将在对象的容器 HelpContextID 中查找,若仍然为
0,那么将在那个对象的容器中查找,如此继续下去。如果不能找到非 0 的当前上下文号,那么 F1 键被忽略。
对于一个 Menu 控件,HelpContextID 在运行时可正常地读/写。 但是对于那些被 Visual Basic
的加载宏遗弃或提供的菜单项来说,HelpContextID 是只读的,比如在“外接程序”菜单中的“外接程序管理器”命令。
例:该例子使用 Visual Basic
帮助文件中的主题来演示如何为帮助主题指定上下文号。要试用此例,先将下面的代码粘贴到包含一个 TextBox 控件以及内有一个
OptionButton 控件的 Frame 控件的窗体的声明部分。然后按下 F5
键。一旦程序运行,就将焦点移到一个控件上,并按下 F1 键。
' Visual Basic 帮助文件中的真正的上下文号。
Const winColorPalette = 21004 '定义常数。
Const winToolbox = 21001
Const winCodeWindow = 21005
Private Sub Form_Load ()
App.HelpFile = "VB.HLP"
Frame1.HelpContextID = winColorPalette
Text1.HelpContextID = winToolbox
Form1.HelpContextID = winCodeWindow
End Sub
hWnd
返回窗体或控件的句柄。
注意: OLE 容器控件不支持该属性。
语法:object.hWnd
说明:
Microsoft Windows 运行环境,通过给应用程序中的每个窗体和控件分配一个句柄(或 hWnd)来标识它们。hWnd
属性用于Windows API调用。许多 Windows 运行环境函数需要活动窗口的 hWnd 作为参数。
注意 由于该属性值在程序运行时可以改变,绝对不要将 hWnd 存储在变量中。
如果 User Control 的 Windowless 属性设为 True, 则 hWnd 属性将返回 0 。
例:这个例子强制窗体保持在最前面。要试用此例,先创建一个窗体(不是一个 MDI 子窗体),然后为该窗体创建一菜单叫做
Main。在其中插入一子菜单叫做 Always On Top,并且把它的名字设置为 mnuTopmost。利用“工程”菜单中的“添加模块”命令创建一个新模块。把
Declare 语句粘贴到新模块的声明部分,确保该语句在一行,并且没有断点或隐藏字。然后把 Sub 过程粘贴到窗体的声明部分并按
F5 键。
' 声明 Windows 例程.
' 该语句应在模块中。
Declare Function SetWindowPos Lib "user32" Alias_ "SetWindowPos"
(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
' 设置一些常数值(从 WIN32API.TXT).
Const conHwndTopmost = -1
Const conHwndNoTopmost = -2
Const conSwpNoActivate = &H10
Const conSwpShowWindow = &H40
Private Sub mnuTopmost_Click ()
' 从菜单中加入或删除检查标志.
mnuTopmost.Checked = Not mnuTopmost.Checked
If mnuTopmost.Checked Then
' 打开 TopMost 属性.
SetWindowPos hWnd, conHwndTopmost, 0, 0, 0, 0,_ conSwpNoActivate
Or conSwpShowWindow
Else
' 关闭 TopMost 属性.
SetWindowPos hWnd, conHwndNoTopmost, 0, 0, 0,_ 0,
conSwpNoActivate Or conSwpShowWindow
End If
End Sub
无论何时只要 ComboBox 收到焦点,在这个例子中都会自动放下 ComboBox 控件的列表部分。要试用此例,”创建一个包含
ComboBox 控件和 OptionButton
控件的新窗体(只为获得焦点用)。用先获得“工程”菜单中的“添加模块”命令创建一个新的模块。把 Declare
语句粘贴到新模块的声明部分,确保该语句在一行,并且没有断点或自动换行。然后把 Sub 过程粘贴到窗体的声明部分,并按 F5
键。用 TAB 键将焦点移动到 ComboBox 以及从 ComboBox 移出。
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal
hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam
As Long) As Long
Private Sub Combo1_GotFocus ()
Const CB_SHOWDROPDOWN = &H14F
Dim Tmp
Tmp = SendMessage(Combo1.hWnd, CB_SHOWDROPDOWN, 1, ByVal 0&)
End Sub
|