句柄

句柄是 Windows 编程的基础,所谓句柄就是 Windows 使用的一种无重复整数。句柄主要用来标识应用程序中的一个对象,如窗口、实例、菜单、内存、输出设备、控制或文件等。

例如在模块文件定义文件中,菜单资源中的菜单项被定义并且赋给了一个句柄值。应用程序的菜单栏中,第一个菜单的第一个菜单项可能被赋予 100 这个句柄值,那么第二个菜单项可能被赋予 101 这个句柄值。在应用程序的源代码中,这些菜单项将要通过 100 和 101 来区分。Windows 应用程序只能访问句柄,而不能直接访问句柄所指示的实际数据。Windows 系统控制着这些系统数据的存取权,这样才能在多任务环境中保护这些数据。Windows 常用的句柄见下表。

Windows 常见的公用句柄类型
句柄类型说明备注
HBITMAP保存位图信息的内存区域的句柄 
HBRUSH画刷句柄 
HCTR子窗口控件句柄

ConTRol

HCURSOR鼠标光标句柄 
HDC设备描述表句柄Device Context
HDLG对话框句柄dialog
HFONT字体句柄 
HICON图标句柄 
HINSTANCE应用程序的实例句柄 
HMENU菜单句柄 
HMODULE模块句柄 
HPALETTE颜色调色板句柄 
HPEN在设备上画图时用于指明线型的笔的句柄 
HRGN剪切区域句柄 
HTASK独立于已执行任务的句柄 
HWND窗口句柄 

句柄常作为 Windows 消息和 API(application programming interface,应用程序编程接口)函数的参数,在采用 API 方法编写 Windows 应用程序时要经常使用句柄。采用 MFC 方法编写 Windows 应用程序时,可以通过访问类的一个 public 的成员变量来获取某个 MFC 类对象的句柄,如 CWnd 类的成员变量 m_hWnd 就是一个窗口对象的句柄。由于对应的 MFC 类已经对句柄进行了封装,大多数情况下不在需要访问句柄。

相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页