WIN32程序中的窗口图标和应用程序图标

本文介绍了如何在WIN32程序中设置窗口图标和应用程序图标,包括在.RC文件中定义图标,头文件中声明,以及在窗口类结构体中装载图标。同时提到WM_SETICON消息在设置窗口图标时的重要性,以及在CreateWindowEx和CreateDialogParam创建窗口时的图标处理差异。

要设置图标文件分这么几步:首先要定义图标文件,就是32*32或16*16大小的ICO文件。在程序的.RC文件下进行定义:

#define IDI_APP_ICON100(图标文件的ID号)

IDI_APP_ICON ICON “图标文件的位置”

通常图标文件我们就放到资源文件夹中。然后我们还需要在头文件中定义一下:IDI_APP_ICON equ 100.

第三步在定义窗口类结构体时装载图标文件:

invoke LoadIcon,NULL,IDI_APP_ICON
mov wnd.hIcon,eax
mov wnd.hIconSm,eax

首先是加载图标文件,hIcon和hIconSm都是图标句柄,前一个是用以指定大图标,后一个是用以指定小图标。按MSDN的说明 hIcon中设置的图标是窗口左上角窗口图标 , hIconSm只是个小图标,但是在实际应用中movwnd.hIcon,eax这句是可有可无的,不管有没有这句,应用程序图标和窗口图标都不受影响,反而hiconSm是不可或缺的。(目前真不懂,如果有知道的,麻烦告诉我一下谢谢)

经过上述三步,程序图标就可以更改了,如果要设置窗口图标还必须在窗口建立时向窗口发送WM_SETICON消息:

.if eax==WM_INITDIALOG

; 为此窗口建立一个图标

invoke LoadIcon, hInstance, IDI_WAIN_ICON
invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax

这里需要注意一下,如果是CreateWindowEx生成的窗口文件,可以直接使用上述定义的图标文件变量,但是如果是CreateDialogParam创建的对话框,就必须重新定义一个图标文件变量,图标文件可以一样,但是ID号和变量名要变一下。简单一点说:窗口文件的程序图标变量和窗口图标变量定义一个就行,对话框的必须分别定义,图标文件可以是同一个,变量名必须不同。ICON_BIG是32*32的,,ICON_SMALL是16*16

这样程序的这两个图标就OK了。

在RadAsm中我们可以不用在.RC文件中定义,只需要通过 工程---资源  进行添加然后在头文件中等值一下就行。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值