步骤一:
切换到Resource选项卡,导入一个ico文件,右击图标文件,选择properties选项,在ID中更改它的名字,如:IDI_ICONAPP,在头文件夹中导入资源头文件(resource.h)
步骤二:
//载入图标
HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
步骤三:
//SendMessage(hwnd, WM_SETICON, TRUE, (LPARAM)hIcon);
//SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
备注:
WM_SETICON Message
一个应用程序发送WM_SETICON消息来将一个大图标或一个小图标与一个窗口相关联。大图标将在按下ALT+TAB组合键时显示,小图标将在窗口的标题栏内显示。
语法
lResult = SendMessage( // returns LRESULT in lResult
hWndControl, // (HWND) handle to destination control
WM_SETICON, // (UINT) message ID
wParam, // = () wParam;
lParam // = () lParam;
);
参数
wParam
指定图标的类型。该参数可以为下列值之一:
ICON_BIG=true
为窗口设置大图标
ICON_SMALL=false
为窗口设置小图标
lParam
新的大、小图标的句柄。如果该参数为NULL,由wParam参数指定的图标将会移除。
返回值
返回值是之前的大图标或小图标的句柄,取决于wParam参数的值。如果窗口之前没有wParam参数标识的图标类型,则返回NULL。
备注
DefWindowProc 函数返回一个之前的大、小图标的句柄
MAKEINTRESOURCE这个宏是把一个数字类型转换成指针类型的宏,它不存在释放的问题
用这个宏的主要原因是有的资源是用序号定义的,而不是字符串.所以要把数字转换成字符串指针,然后再传递给LoadResource之类的函数,这样才加载了资源.
要释放资源(用LoadResource加载的)可以调用FreeResource函数把LoadResource返回的指针传递给FreeResource.
MAKEINTRESOURCE 的作用:
是把一个"数字形ID",转化为"字符串".但是执行前后,输入的数据的内容和长度是不变的!它只不过就是C语言里面"强制类型转换"而已.