4.01 图标资源与光标资源
图标资源
● 添加资源
注意图标的大小,一个图标文件中,可以有多个不同大小的图标。
● 加载
HICON LoadIcon(
HINSTANCE hInstance, //handle to application
instance LPCTSTR IpIconName //name string or resource identifier
); // 成功将返回HICON句柄
● 设置
注册窗口类时设置
#include "resource.h"
wc.hIcon = LoadIcon(hIns,(char*)IDI_ICON1); // Icon
光标资源
● 添加光标资源
光标的大小默认是32X32像素,每个光标有HotSpot,是当前鼠标的热点(在光标资源编辑界面, 有个设置热点工具)
● 加载资源
HCURSOR LoadCursor(
HINSTANCE hInstance, //handle to application instance
LPCTSTR IpCursorName //name or resource identifier
);// hInstance 可以为NU儿L,获取系统默认的Cursor
● 设置资源
在注册窗口时,使用SetCurson设置光标
wc.hCursor = LoadCursor(hIns,(char*)IDC_CURSOR1); // 默认鼠标样式
HCURSOR SetCursor(
HCURSOR hCursor //handle to cursor
);
● VM_SETCURSOR消息参数
产生时间: 光标移动
- WPARAM 当前使用的光标句柄
- lParam
- LOWORD 当前区域的代码(Hit-Test code) HTCLIENT HTCAPTION…
- HIWORD 当前鼠标消息ID(有没有点左键 右键之类)
case WM_SETCURSOR:
{
HCURSOR hCUr = LoadCursor(GetModuleHandle(NULL),(char*)IDC_CURSOR2);
if (LOWORD(lParam) == HTCLIENT) {
// 客户端区域
SetCursor(hCUr);
}
else if (LOWORD(lParam) == HTCAPTION) {
// 标题区域
SetCursor(hCUr);
}
return 0; // 记得返回, 不然还会默认处理
}
break;