最近需要在对话框(CDialog)上任意位置绘制系统图标,搜索一遍后,最后在MSDN上找到了方法,MSDN原文地址
以下为译文 //
函数说明
从与程序(application)实例相关联的可执行文件(.exe) 加载特定的图标资源。注意,此函数已经被LoadImage函数所替代。
语法
HICON WINAPI LoadIcon(
_In_opt_ HINSTANCE hInstance,
_In_ LPCTSTR lpIconName
);
参数
hInstance [入参,可选]
类型:HINSTANCE
说明:是模块实例的句柄,该模块的可执行文件包含了将被加载的图标。当加载的的是系统图标时,该参数必须为NULL。
lpIconName [入参]
类型:LPCTSTR
说明:要被加载的图标资源的名称。或者,该参数在低字节包含资源标志符,高字节置0。使用MAKEINTRESOURCE宏来创建该值
如果要使用系统图标,设置hInstance为NULL,并且lpIconName设为以下参数之一:
Value | 含义 |
IDI_APPLICATION MAKEINTRESOURCE(32512) | 默认程序图标 |
IDI_ASTERISK MAKEINTRESOURCE(32516) | Asterisk图标, 与IDI_INFORMATION相同 |
IDI_ERROR MAKEINTRESOURCE(32513) | Hand-shaped图标 |
IDI_EXCLAMATION MAKEINTRESOURCE(32515) | 感叹号图标, 与IDI_WARNING相同 |
IDI_HAND MAKEINTRESOURCE(32513) | Hand-shaped图标, 与IDI_ERROR相同 |
IDI_INFORMATION MAKEINTRESOURCE(32516) | Asterisk图标 |
IDI_QUESTION MAKEINTRESOURCE(32514) | 疑问号图标 |
IDI_SHIELD MAKEINTRESOURCE(32518) | 安全伞图标 |
IDI_WARNING MAKEINTRESOURCE(32515) | 感叹号图标 |
IDI_WINLOGO MAKEINTRESOURCE(32517) | 默认程序图标, Win2000:Windows logo图标 |
返回值
类型:HICON
如果函数调用成功,返回新加载的图标句柄。
如果函数调用失败,返回值为NULL,要得到更详细的错误信息,调用GetLastError()
备注
只有当图标未被加载,LoadIcon才会进行加载;否则,该API将找到并返回已经存在的资源句柄。该API搜索图标对应的最适合当前显示环境的图标资源。图标资源可以是单色bitmap。该API只能加载尺寸适合 SM_CXICON和SM_CYICON系统值的图标。可以使用LoadImage加载其他尺寸的图标。