C++中如何获取当前窗口句柄?

Posted

tags:

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

如题

很菜的问题!本人新手!

就是写一个函数的时候, 需要用到HWND, 不知道这个HWND怎么获取!!很郁闷!

望高手指教!!
我用的MFC框架的, 都不知道WindowProc在哪里.....

或者具体点告诉我调什么函数能获取HWND就可以,谢谢!!

1、启动VS,新建C# WinForm项目。

2、在Form1中添加4个Label控件,并布局如下。

3、在Form1中添加代码,如下。

4、完成之后,调试运行,结果如下。

注意事项:

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

参考技术A 1. 如果你不是在那个窗口的上下文操作的话,你必须把那个窗口的句柄保存在一个那个操作可访问得变量中。
2. 如果你在那个窗口的上下文中操作的话,WindowProc第一个参数就是HWND
参考技术B 指定的架构无效。错误: CLR 类型到 EDM 类型的映射不明确 参考技术C 句柄 这一概念是MFC里的一个类,MFC有专门的函数来获取窗口句柄。
HWND hwnd;
hwnd=CreateWindow("my own windowshandle","jaycnvip",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
这是用一个句柄变量来保存新创建的窗口句柄。

其它如:
通过窗口标题获取窗口句柄
CWnd *pWnd = FindWindow(_T("#32770"), _T("QQ用户登录"));

CWnd有个成员函数
HWND GetSafeHwnd( ) const;

在对话框类的成员函数里用
HWND hwnd = GetSafeHwnd();
得到的hwnd就是句柄了本回答被提问者采纳

vb如何获取到窗口的句柄

如果我用getwindow找到窗口的hdc属性,但是我想要它的hwnd,怎么办呢?
求教。。

参考技术A 获取句柄不一定要用 FindWindow ,还可以枚举:

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Const GW_HWNDFIRST = 0
Private Const GW_HWNDNEXT = 2

Private Sub Command1_Click()
Dim lngHwnd As Long, ret As Long
Dim s As String * 255
Dim sName As String

lngHwnd = GetWindow(Me.hwnd, GW_HWNDFIRST)
Do While lngHwnd
ret = GetWindowText(lngHwnd, s, 255)
sName = Blank(s)
If InStr(sName, "记事本") <> 0 Then '这里“记事本”替换成程序标题相同的部分
'这里写 将句柄加入数组的相关代码
End If
lngHwnd = GetWindow(lngHwnd, GW_HWNDNEXT)
Loop
End Sub

Public Function Blank(ByVal szString As String) As String
Dim l As Integer

l = InStr(szString, Chr(0))
If l > 0 Then
Blank = Left(szString, l - 1)
Else
Blank = szString
End If
End Function
参考技术B GetWindow怎么会找到hdc呢?他的返回值就是hwnd啊。
============
话说回来,如果你已知一个hdc想要找他的hwnd,用WindowFromDC函数。本回答被提问者采纳

以上是关于C++中如何获取当前窗口句柄?的主要内容,如果未能解决你的问题,请参考以下文章

MFC中怎样获取指定窗口的句柄

vb如何获取到窗口的句柄

delphi 获取自身句柄

VB获取窗口句柄的详细教程

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

vb.net中如何获得某个窗口的句柄