我窗体上有一个控件,这种控件属性里没有hwnd,请问我该如何获得这种控件的句柄,前面我看了一些同行说用
控件hWnd=GetDlgItem(对话框hWnd, 控件ID)
但我不知道怎么去得到控件ID?如果用
控件ID=GetDlgCtrlID(HWND hwndCtl)
来找控件ID的话,hwndCtl正是我要求的。
请高手指点!!!
控件hWnd=GetDlgItem(对话框hWnd, 控件ID)
但我不知道怎么去得到控件ID?如果用
控件ID=GetDlgCtrlID(HWND hwndCtl)
来找控件ID的话,hwndCtl正是我要求的。
请高手指点!!!
取决于进行什么操作
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
临时画的图像可能有窗口吗?!
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
说明
寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题)
返回值
Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
参数表
参数 类型及说明
lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题
注解
很少要求同时按类与窗口名搜索。为向自己不准备参数传递一个零,最简便的办法是传递vbNullString常数
示例
Dim hw&, cnt&
Dim rttitle As String * 256
hw& = FindWindow("ThunderRT5Main", vbNullString)
cnt = GetWindowText(hw&, rttitle, 255)
MsgBox Left$(rttitle, cnt), 0, "RTMain title"