VC++中怎样获取到一个窗体的句柄?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++中怎样获取到一个窗体的句柄?相关的知识,希望对你有一定的参考价值。

参考技术A FindWindow接收两个参数,第一个是窗口的类名,第二个就是窗口的标题。
类名和标题都可以通过VS自带的工具Spy++获取到。
他返回的就是一个窗口的句柄,HWND类型。
MFC中封装了此方法,可以直接调用。
参考技术B 用一般是用窗体的标题获得。。。先用spy++ 查看那个窗体的标题。。然后CWnd pWnd=CWnd::FindWindow(NULL,windowTitle);
这个pWnd就是那个窗口的指针了。具体查看findwindow这个函数

delphi获取指定窗体句柄,该怎么处理

参考技术A 找某个窗口的某个BUTTON
,例子很简单就是用了
FindWindow,EnumChildWindows两个函数,要找的具体BUTTON在EnumChildWindowsProc回调函数中
Delphi(Pascal)
codefunction
EnumChildWindowsProc(hwd:
Hwnd):
Boolean;
stdcall;
begin
Result
:=
true;
GetClassName(hwd,
buffer,
256);
if
String(Buffer)
<>
'Button'
then
Exit;
getwindowtext(hwd,
buffer,
256);
if
String(Buffer)
<>
'验证全部'
then
Exit;
h
:=
hwd;
end;
procedure
TForm1.Timer1Timer(Sender:
TObject);
var
hwnd1,hwnd2,hwnd3,hwnd4:
DWORD;
begin
h
:=
0;
hwnd1
:=
FindWindow(nil,
'代理猎手');
if
hwnd1
<>
0
then
begin
if
EnumChildWindows(hwnd1,
@EnumChildWindowsProc,
0)
then
if
h
=
0
then
exit;
SendMessage(h,
WM_LBUTTONDOWN
,
0,
0);
SendMessage(h,WM_LBUTTONUp,
0,
0);
end;
end;

以上是关于VC++中怎样获取到一个窗体的句柄?的主要内容,如果未能解决你的问题,请参考以下文章

知道一个窗体的句柄,如何获取这个窗体

c# 设置窗体句柄

delphi获取窗体的句柄

C#获取当前窗体句柄及该窗体里的信息

怎么使用VB的窗体句柄打开窗体

如何获取窗体中组件的句柄