窗口句柄浅析

简介:
句柄(HANDLE)是Windows程序中一个重要的概念,使用也非常频繁。在Windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标识这些资源的标识号,即句柄。
窗口句柄是windows句柄的一种,且是重要的一种句柄。在Windows应用程序中,窗口是通过窗口句柄(HWND)来标识的。我们要对某个窗口进行操作,首先就要得到这个窗口的句柄。
窗口句柄的概念比较抽象,简单说窗口句柄就是一个窗口(window)的代表。我们通过几个例子来认识它。
1.LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
windows窗口处理函数,windows消息机制说的是,每当某个窗口发生变化(比如改变大小,移动),windows系统都会发相应的消息(wm_size,wm_move)给这个窗口。即调用函数 SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);注意这里WndProc和SendMessage的第一个参数都是HWND,窗口句柄代表这个窗口。
2. hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
这里说的是窗口句柄的产生,可以把hWnd想象成指针,CreateWindow想象成c++里的new,创建一个window,系统要为这个window对象分配一些资源,可以想象,window是由一个大的结构构成的。同时窗口句柄用来标识这个窗口。
3.有个窗口的句柄,则你就可以操控这个窗口的一切。
大量管理window的win32 api都是以hwnd做为参数。下面列举一些:
BringWindowToTop
FindWindowEx
GetParent
SetWindowPos
GetWindowRect
等等。
4.不仅窗口,窗口上的控件,象按钮,编辑框等也有窗口句柄,因为它们也是一种特殊的窗口,上面操作窗口的api大部分对这些控件窗口也适用。









本文转自 xchsp 51CTO博客,原文链接:http://blog.51cto.com/freebird/97607,如需转载请自行联系原作者

目录
相关文章
|
6月前
|
人工智能 自然语言处理 安全
详解:Claude 3.7 Sonnet 国内使用指南_claude使用教程
Claude 3.7在对话理解和生成能力上都进行了显著的提升
5453 14
|
5月前
|
人工智能 自动驾驶 数据可视化
魔搭社区模型速递(3.30-4.12)
魔搭ModelScope本期社区进展:新增1911个模型,297个数据集,113个创新应用, 10篇内容。
281 3
魔搭社区模型速递(3.30-4.12)
|
12月前
|
监控 API 数据库
什么是API?
API是应用程序编程接口(Application Programming Interface)的缩写,它定义了软件组件之间如何相互通信。API充当不同软件间的桥梁,允许应用程序使用另一个应用程序的功能或数据。
1173 4
|
编译器 Go 开发者
|
11月前
|
安全 API C#
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
350 0
|
人工智能 API
谷歌SIMA:一种适用于 3D 虚拟环境的通用 AI 智能体
【2月更文挑战第24天】谷歌SIMA:一种适用于 3D 虚拟环境的通用 AI 智能体
333 1
谷歌SIMA:一种适用于 3D 虚拟环境的通用 AI 智能体
|
11月前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
581 0
|
监控 安全 物联网
智能家居安全风险与防范措施
随着物联网技术的不断进步,智能家居系统已经越来越多地进入我们的生活。然而,随之而来的是各种安全问题和隐私泄露的风险。本文将深入探讨智能家居系统中存在的安全漏洞,分析黑客攻击的常见手段,并提出一系列有效的预防措施来保护我们的智能家居免受侵害。文章旨在提高用户对智能家居安全的认识,并指导如何构建一个更加安全的智能生活环境。
|
程序员 API 对象存储
技术心得记录:控制台——对窗口句柄的操作
技术心得记录:控制台——对窗口句柄的操作
146 0