微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

winapi – Windows API中的HANDLE和HWND之间的区别?

我试图使用函数SetForegroundWindow(HWND hWnD).我有一些句柄,但它不能作为上述函数的参数.我的句柄是一个线程,我想在前台运行它.

HWND和手柄之间有什么区别?

他们只是 abstract data types.

根据MSDN,HANDLE和HWND定义为:

> HANDLE是一个对象的handle.
> HWND是窗口的句柄.

所以,HWND是一个HANDLE,但并不是所有的HANDLE都是HWND.事实上:

typedef void *PVOID;
typedef PVOID HANDLE;
typedef HANDLE HWND;

除非你知道你在做什么,否则你只应将HWND传递给SetForegroundWindow.

HWND hWnd = FindWindow(NULL,"Calculator");
SetForegroundWindow(hWnd);

这首先使用FindWindow获取名为“Calculator”的窗口的句柄,然后将该窗口转到前台.

原文地址:https://www.jb51.cc/windows/371056.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐