MFC LoadImage用法案例详解

 更新时间:2021年08月23日 14:20:10   作者:HisinWang  
这篇文章主要介绍了MFC LoadImage用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

函数原型

HANDLE LoadImage(
    HINSTANCE hinst,     // 若加载程序外部资源传NULL,否则一般传AfxGetInstanceHandle()
    LPCTSTR lpszName,    // 图片名称或全路径
    UINT uType,          // 图片类型:IMAGE_BITMAP或IMAGE_ICON或IMAGE_CURSOR
    int cxDesired,
    int cyDesired,
    UINT fuLoad          // 一般为LR_DEFAULTCOLOR | LR_CREATEDIBSECTION
);

cxDesired, cyDesired:

按Image的实际尺寸加载:cxDesired=0,cyDesired=0并且fuLoad不指定LR_DEFAULTSIZE。
按指定大小加载: cxDesired,cyDesired不为0并且fuLoad不指定LR_DEFAULTSIZE,Image会根据实际大小缩放。
按Windows系统默认的Icon或Cursor大小(一般为32x32)加载Icon或Cursor:cxDesired=0,cyDesired=0, fuLoad指定LR_DEFAULTSIZE,Image会根据实际大小缩放。
注意: LR_DEFAULTSIZE只对Icon和Cursor起作用,对Bitmap不起作用。

fuLoad:

若从独立于程序的Image文件(.bmp,.ico)加载,请指定标志LR_LOADFROMFILE。

示例

1.加载Icon资源

按Windows系统默认的Icon大小加载

HICON hIcon = (HICON)::LoadImage(
        AfxGetInstanceHandle(), 
        MAKEINTRESOURCE(IDI_ICON1),
        IMAGE_ICON,
        0, 0,
        LR_DEFAULTCOLOR | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);

2.加载本地磁盘的Icon文件

按实际大小加载

HICON hIcon = (HICON)::LoadImage(
        AfxGetInstanceHandle(), 
        TEXT("D:\\Butterfly.ico"),
        IMAGE_ICON,
        0, 0,
        LR_DEFAULTCOLOR | LR_CREATEDIBSECTION | LR_LOADFROMFILE);

3.加载本地磁盘的Bitmap文件

按指定大小加载

HBITMAP hBitmap = (HBITMAP)::LoadImage(
        NULL, 
        TEXT("D:\\001.bmp"), 
        IMAGE_BITMAP, 
        50, 50, 
        LR_DEFAULTCOLOR | LR_CREATEDIBSECTION | LR_LOADFROMFILE);

到此这篇关于MFC LoadImage用法案例详解的文章就介绍到这了,更多相关MFC LoadImage用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言实现括号匹配的方法

    C语言实现括号匹配的方法

    这篇文章主要介绍了C语言实现括号匹配的方法,文中代码简单易懂,方便大家更好的学习,感兴趣的朋友可以参考下
    2020-06-06
  • C++中设计一个类时的注意事项分享

    C++中设计一个类时的注意事项分享

    这篇文章主要来和大家分享一下C++中,设计一个类要注意哪些东西,这往往也是C++面试时会考到的问题,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-06-06
  • C++的cout.tellp()和cout.seekp()语法介绍

    C++的cout.tellp()和cout.seekp()语法介绍

    无论是使用 cout 输出普通数据,用 cout.put() 输出指定字符,还是用 cout.write() 输出指定字符串,数据都会先放到输出流缓冲区,待缓冲区刷新,数据才会输出到指定位置,本文给大家介绍一下C++的cout.tellp()和cout.seekp()语法,需要的朋友可以参考下
    2023-09-09
  • C语言 结构体数组详解及示例代码

    C语言 结构体数组详解及示例代码

    本文主要介绍C语言 结构体数组,这里整理了相关资料及简单示例代码,以便大家学习参考,有兴趣的小伙伴可以看下
    2016-08-08
  • OpenGL通过中点法绘制直线和圆

    OpenGL通过中点法绘制直线和圆

    这篇文章主要为大家详细介绍了OpenGL通过中点法绘制直线和圆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C语言中无符号数和有符号数之间的运算

    C语言中无符号数和有符号数之间的运算

    C语言中有符号数和无符号数进行运算默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了。下面通过一个例子给大家分享C语言中无符号数和有符号数之间的运算,一起看看吧
    2017-09-09
  • C语言扫雷排雷小游戏实现全程

    C语言扫雷排雷小游戏实现全程

    本篇我将带领大家攻克扫雷游戏各处难点,让你写扫雷不在困难,我们的扫雷游戏可以实现标记雷的功能和展开一片的功能。我们将分三个文件为大家介绍,分别为test.c,game.h和game.c
    2022-05-05
  • 详解C++ 参数的三种传递方式和应用场景

    详解C++ 参数的三种传递方式和应用场景

    这篇文章主要介绍C++ 参数的三种传递方式和应用场景,C++ 参数的三种传递方式分别是值传递、指针传递和引用传递,感兴趣的同学可以参考阅读下
    2023-06-06
  • C++类模板实战之vector容器的实现

    C++类模板实战之vector容器的实现

    本文我们将做一个类模板实战-手写精简版vector容器。让我们自己封装一个数组类,可以适应基本数据类型和自定义数据类型,感兴趣的可以了解一下
    2022-07-07
  • Qt增加版本公司等信息两种方式

    Qt增加版本公司等信息两种方式

    在项目中生成exe或者动态库过程中可能需要加入公司信息、版本号、说明等等,下面这篇文章主要给大家介绍了关于Qt增加版本公司等信息的两种方式,需要的朋友可以参考下
    2024-01-01

最新评论