• LoadIcon() --加载一个图标资源


     

    LoadIcon() --加载一个图标资源

    分类: VC++
    LoadIcon() 函数原型如下:
    1
    2
    3
    4
    HICON LoadIcon(
      HINSTANCE hInstance,
      LPCTSTR lpIconName
    );

    该函数从与 hInstance 模块相关联的可执行文件中装入lpIconName指定的图标资源,仅当图标资源还没有被装入时该函数才执行装入操作,否则只获取装入的资源句柄。

    比如,在对窗口类初始化时,我们可以如下使用:
    1
    2
    WNDCLASSEX mywcex;
    mywcex.hIcon = LoadIcon(NULL,IDI_ERROR);

    上面代码中,我们将标题栏上的图标定义为 IDI_ASTERISK ,编译运行后会看到标题栏上的图标为:

    注意,上面函数中第一个参数为 NULL,此时使用的是系统预定义的图标,其它预定义选项可参考 MSDN,否则使用自定义的图标资源。还有一种选择图标的做法是,即使用  MAKEINTRESOURCE 宏对一个十六位数的资源标识符(高 8 位为0,低 8 位为图标资源ID)进行转换。使用该宏的时候,我们往往使用 Visual Studio 为我们自动产生资源头文件 resource.h 和 资源文件 OurProject.rc 。.rc 文件是个文本文件,我们可以在记事本里编辑它们,但一般不会直接去这么做。新建图标资源的操作结果会写到该文件中。比如,可以通过 VS 里的“文件”--> “新建” --> “文件”--> “图标文件(.ico)” 来新添加一个图标,接着可以编辑该图标,最后保存。如果要添加该新建的图标,可以在“解决方案资源管理器”窗口底下的“资源文件”文件夹下双击打开 "OurProject.rc“ 文件,接着右键点击“Icon “文件夹图标,在弹出的菜单中选择“添加资源”,在弹出的对话框中,选择“Icon”,然后点击右边的“导入”按钮,将之前编辑好的图标资源添加进来。如下图所示:

    完后,我们可以看到左边的“资源视图”窗口里的 "Icon" 下面多了一项“IDI_ICON1”,这个就是我们自定义的图标。如下图所示:

    在保存好上面的工作后,打开 resource.h 就可以看到多了一项定义:
    #define IDI_ICON1                       135

    好了,现在可以用这个新建的自定义图标了,现在修改源码文件,正是使用 MAKEINTRESOURCE  这个宏来进行转换,比如:
    mywcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));

    再重新生成一下可执行文件,可以看到:


    最后还需要注意的是,在窗口类中还有一个成员 hIconSm 。这是一个小图标句柄,如果该项为空,那么系统就会使用 hIcon 成员所指定的图标,并用合适的尺寸来使用它 --- 上面的步骤就是设置了 hIconSm 为空,而使用了 hIcon 所指示的图标。
  • 相关阅读:
    实例化对象
    面向对象
    合并类动态规划——石子合并(洛谷1880)
    合并类动态规划——能量项链(洛谷1063)
    multiplicationoverview
    cadence 工艺库各文件夹所包含的内容
    C语言读入文件的函数列举
    一篇工程师的感悟(转载)
    验证汇总一些缩写代码含义
    Verilog代码覆盖率检查
  • 原文地址:https://www.cnblogs.com/jack-jia-moonew/p/4165019.html
Copyright © 2020-2023  润新知