一,图标
上一篇博文“[Win32SDK基本] 窗口详解(超详细)"中(地址:http://blog.csdn.net/zuishikonghuan/article/details/46378475),提到了图标的问题,上一次我是直接使用系统的默认图标了事的,这一回来讲解如何使用自己的图标。
在注册窗口类的时候,对于图标一项,是使用的LoadIcon函数,来看看LoadIcon函数的原型
MSDN:https://msdn.microsoft.com/en-us/library/windows/desktop/ms648072(v=vs.85).aspx
对于第二个参数lpIconName(图标名称),MSDN里是这样说的:
The name of the icon resource to be loaded. Alternatively, this parameter can contain the resource identifier in the low-order word and zero in the high-order word. Use the MAKEINTRESOURCE macro to create this value.
我的理解:如果实参是一个字符串,那么就直接调用资源名称为这个字符串的图标,如果是用资源id的图标,那么就这个整数的高2字节应为0x0000,低2字节为资源id。sdk为我们提供了一个叫MAKEINTRESOURCE的宏将一个id的高2字节置0。
经过测试,事实就是这样,VS默认使用id的方式用图标,而我喜欢使用字符串方式。另外值得一题的是,几乎所有用到rc资源的函数,对于资源的参数都是字符串类型,而且提供了字符串(名称)方法和id方法
我们打开上一篇博文中代码的工程,打开VS为我们生成的rc文件,然后删掉里面所有的内容,没错,是删除所有的内容!再打开Resource.h头文件,删除所有内容。
再回到rc文件,添加一个图标,注意1.ico要放到工程的文件夹中。
ICON_1 ICON "1.ico"