作者在 2010-09-26 15:33:22 发布以下内容
hwnd
: h 是类型描述,表示句柄, wnd 是变量对象描述,表示窗口,所以hwnd 表示窗口句柄
hWnd 属性 返回窗体或控件的句柄。
注意 OLE 容器控件不支持该属性。
语法
object.hWnd
object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
说明
Microsoft Windows 运行环境,通过给应用程序中的每个窗体和控件分配一个句柄(或 hWnd)来标识它们。hWnd 属性用于Windows API调用。许多 Windows 运行环境函数需要活动窗口的 hWnd 作为参数。
注意 由于该属性值在程序运行时可以改变,绝对不要将 hWnd 存储在变量中。
如果 User Control 的 Windowless 属性设为 True, 则 hWnd 属性将返回 0 。
hWnd 属性示例 这个例子强制窗体保持在最前面。要试用此例,先创建一个窗体(不是一个 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 = -1Const conHwndNoTopmost = -2 Const conSwpNoActivate = &H10 Const conSwpShowWindow = &H40Private 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 IfEnd 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 LongPrivate Sub Combo1_GotFocus () Const CB_SHOWDROPDOWN = &H14F Dim Tmp Tmp = SendMessage(Combo1.hWnd, CB_SHOWDROPDOWN, 1, ByVal 0&)End Sub
作用于:
CheckBox 控件
ComboBox 控件
CommandButton 控件
DataGrid控件
DirListBox 控件
DriveListBox 控件
FileListBox 控件
Form 对象、Forms 集合
Frame 控件
HScrollBar、VScrollBar 控件
ListBox 控件
MDIForm 对象
OLE 容器控件
OptionButton 控件
PictureBox 控件
PictureClip 控件
TextBox 控件
相关基础知识:
句柄
是由操作环境定义的一个唯一的整数值,它被程序用来标识或者切换到对象,如窗体或控件等。
对象表达式 说明具体对象的表达式,可以包含对象的容器。例如,应用程序可以拥有 Application 对象,其中包含 Document 对象,而 Document 对象又包含 Text 对象。
Windows API Windows API(应用程序编程接口)由函数、消息、数据结构、数据类型以及语句组成,它们可在创建在 Microsoft Windows 下运行的应用程序中使用。API 中使用最多的部分是从 Windows 中调用 API 函数的代码元素,包括过程声明(Windows 函数)、用户自定义类型的定义(用来传递到函数中的数据结构),以及常数声明(传递给函数以及从函数中返回的值)。