如何获得某个窗口的设备描述表句柄(VBA里面)?
帮助文档里面只讲了application对象有这个属性,我想问的是某个窗口比如Form1又没有Hwnd属性呢,有的话怎么获取?参考资料:SubCheckHwnd()Msg...
帮助文档里面只讲了application对象有这个属性,我想问的是某个窗口比如Form1又没有Hwnd属性呢,有的话怎么获取?参考资料:
Sub CheckHwnd()
MsgBox "The top-level window handle is: " & _
Application.Hwnd
End Sub
请问下面的这一行代码是不是就找到了form1的窗口句柄
Option Explicit
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal ClassName As String, _
ByVal WindowName As String) As Long
Private Declare Function LockWindowUpdate Lib "user32" ( _
ByVal hwndLock As Long) As Long
Public Sub Freeze(Form As UserForm)
Dim hWnd As Long
If Val(Application.Version) >= 9 Then
hWnd = FindWindow("ThunderDFrame", Form.Caption)
Else
hWnd = FindWindow("ThunderXFrame", Form.Caption)
End If
If hWnd > 0 Then LockWindowUpdate hWnd
End Sub 展开
Sub CheckHwnd()
MsgBox "The top-level window handle is: " & _
Application.Hwnd
End Sub
请问下面的这一行代码是不是就找到了form1的窗口句柄
Option Explicit
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal ClassName As String, _
ByVal WindowName As String) As Long
Private Declare Function LockWindowUpdate Lib "user32" ( _
ByVal hwndLock As Long) As Long
Public Sub Freeze(Form As UserForm)
Dim hWnd As Long
If Val(Application.Version) >= 9 Then
hWnd = FindWindow("ThunderDFrame", Form.Caption)
Else
hWnd = FindWindow("ThunderXFrame", Form.Caption)
End If
If hWnd > 0 Then LockWindowUpdate hWnd
End Sub 展开
3个回答
展开全部
1、最常用的获取并释放设备描述表句柄的方法是,在处理WM_PAINT消息时,使用的BeginPaint和EndPaint调用:
hdc = BeginPaint(hwnd,&ps);
//other program lines
EndPaint(hwnd,&ps);
2、Windows程序还可以在处理非WM_PAINT消息时获取设备描述表句柄:
hdc = GetDC(hwnd);
//other program lines
ReleaseDC(hwnd,hdc);
3、Windows程序还可以获取适用于整个窗口(而不仅限于窗口的客户区)的设备描述句柄:
hdc = GetWindowDC(hwnd);
//other program lines
ReleaseDC(hwnd,hdc);
hdc = BeginPaint(hwnd,&ps);
//other program lines
EndPaint(hwnd,&ps);
2、Windows程序还可以在处理非WM_PAINT消息时获取设备描述表句柄:
hdc = GetDC(hwnd);
//other program lines
ReleaseDC(hwnd,hdc);
3、Windows程序还可以获取适用于整个窗口(而不仅限于窗口的客户区)的设备描述句柄:
hdc = GetWindowDC(hwnd);
//other program lines
ReleaseDC(hwnd,hdc);
展开全部
VBA最大的弱点就是:无法象VB那样直接引用API,从而限制了它的许多功能。如:利用VB的FindWindow查找窗口句柄等。
现在好了,有个变通的办法可以实现调用API的功能,由于内容较多,请到我的博客查看:
http://hi.baidu.com/ljl88900/blog/item/ce53feb5a8439bc937d3ca7e.html
现在好了,有个变通的办法可以实现调用API的功能,由于内容较多,请到我的博客查看:
http://hi.baidu.com/ljl88900/blog/item/ce53feb5a8439bc937d3ca7e.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面的大哥错了,vba可以像vb一样调用api
form1可以直接使用hwnd属性
form1.hwnd
form1可以直接使用hwnd属性
form1.hwnd
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询