MFC LoadImage用法案例详解

目录
  • 函数原型
  • cxDesired, cyDesired:
  • fuLoad:
  • 示例
    • 1.加载Icon资源
    • 2.加载本地磁盘的Icon文件
    • 3.加载本地磁盘的Bitmap文件

函数原型

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用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vs2019中使用MFC构建简单windows窗口程序

    微软基础类库(英语: Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量.其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类. vs 2019 最新版,在设计上又有了很大的变化,并且其所有的服务,模块都是自定义搭建的,所以在一开始安装的时候,没有勾选mfc模块的话,是无法快速构成mfc应用的. vs2019下MFC模块的安装 首

  • 基于MFC实现贪吃蛇小游戏

    本文实例为大家分享了MFC实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 一.功能描述 (1)通过"START"."PAUSE"."EXIT"三个控件,控制游戏的开始.暂停和终止. (2)通过四个方向键控制蛇的运动方向,吃掉随机出现的豆子. (3)吃到豆子蛇身会变长,同时得分增加:碰到壁或者自身则该轮游戏结束. (4)游戏开始.暂停.结束时进行提示. 二.概要设计 1.系统框架 2.游戏流程 三.主要功能实现 1.主要函数 (1)Test

  • MFC列表控件CListCtrl使用方法示范

    CListCtrl 获取选中的某一行 POSITION ps = m_list.GetFirstSelectedItemPosition(); int nSel = m_list.GetNextSelectedItem(ps);//选中的哪行的索引(based 0) // 或 if(m_list.GetSelectedCount() <1) return; int nSel = m_list.GetSelectionMark(); CListCtrl控件失去焦点时仍保持高亮 1. 头文件中添加变

  • MFC Frame-Splitter模型实例原理解析

    1. 新建一个SDI工程,去掉"Document/View architecture support" 2. 添加 CTreeView 类的派生类 CLeftView 作为分隔器的左侧视图,添加 CListView 的派生类 CRightView 作为右边视图.可能需要 #include <afxcview.h> 3. 在CLeftView类中添加成员变量 CTreeCtrl& m_tree; 在CRightView类中添加成员变量 CListCtrl& m

  • VS2019实现C++的第一个MFC程序

    一.创建项目 然后点下一步,配置项目,这里我命名的是myfisrtmfc 点击创建按钮,然后弹出下面的对话框. 对上面的MFC应用程序进行配置,如下: 点击完成,生成如下界面. 第一次编译生成的默认项目,之后得到下面的界面 点击VS2019的界面,"解决方案资源管理器" 到这里,项目建成,并且编译通过. 二.添加自定义的功能(以比较通用的画图为例) 点击资源视图,这里的控件将是后面需要操作的. 双击IDR_MAINFRAME,可以在这里面添加画图功能. 也可以在Ribbon里面添加画图

  • vs2019 MFC实现office界面的画图小项目

    vs2019安装MFC 有许多新手不知道MFC在vs2019里的安装选项,其实它不会在勾选工作负载时自动默认勾选,而通常需要人为勾选,具体安装步骤如下:(安装时间不是很长,网速够快几分钟就下载完毕) 1.打开vs安装程序 2.选择Visual Studio扩展开发 3.选择C++ MFC 生成工具(x86 和 x64)进行安装 4.选择修改,等待安装 5.等待安装完成 6.安装完成,我们打开vs2019 7.我们创建新项目,可以看到已经有MFC应用这个选项 说明我们的MFC安装成功~ vs201

  • VS2019创建MFC程序的实现方法

    前言:本博客只是因为我正在上计算机图形学这门课,为了方便复习所写,所以内容的正确性不敢保证,各位观看之前请三思(欢迎大佬提出建议) 为VS2019安装MFC开发环境 打开Visual Studio Installer(在电脑应用里找就行,安装vs2019肯定少不了它),得到如下界面,点击修改(如果提示你需要更新vs,你只能更新完vs才有修改选项) 找到使用使用C++的桌面开发选项,便能找到如图所示的MFC组件,安装它 安装完成.... 创建MFC应用 1.打开VS,点击创建新项目,得到下图,选择

  • MFC实现对话框编辑控件上拖拽文件

    本文实例为大家分享了MFC实现对话框编辑控件上拖拽文件的具体代码,供大家参考,具体内容如下 步骤 1.重载CEdit类 2.添加编辑框控件 首先,重载CEdit类,定义一个派生类CDragEdit类,并重载它的WM_CREATE方法,在其中添加DragAcceptFile(TRUE); 方法. // CDragEdit.h #pragma once class CDragEdit : public CEdit { DECLARE_DYNAMIC(CDragEdit) public: CDragE

  • MFC LoadImage用法案例详解

    目录 函数原型 cxDesired, cyDesired: fuLoad: 示例 1.加载Icon资源 2.加载本地磁盘的Icon文件 3.加载本地磁盘的Bitmap文件 函数原型 HANDLE LoadImage( HINSTANCE hinst, // 若加载程序外部资源传NULL,否则一般传AfxGetInstanceHandle() LPCTSTR lpszName, // 图片名称或全路径 UINT uType, // 图片类型:IMAGE_BITMAP或IMAGE_ICON或IMAG

  • C++ GetDlgItem用法案例详解

    GetDlgItem的用法小结 GetDlgItem用于获得指定控件ID的窗体指针,函数原型如下: HWND GetDlgItem( HWND hDlg, int nIDDlgItem ); CWnd* GetDlgItem(int nID) const; 它的使用说明中有这样一行字,**The returned pointer may be temporary and should not be stored for later use. **,那说明,它返回的指针有可能是有效的,有可能是无效

  • StretchBlt函数和BitBlt函数用法案例详解

    StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的位图拷贝到屏幕上,并且可以根据屏幕画图区的大小来进行伸缩,适应响应的屏幕(或图像控件) BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, in

  • Python中return用法案例详解

    python中return的用法 1.return语句就是把执行结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return. 例如: def haha(x,y): if x==y: return x,y print(haha(1,1)) 已改正: 结果:这种return传参会返回元组(1, 1) 2.但是也并不意味着一个函数体中只能有一个return 语句,例如: def test_return(x): if x >

  • Java ConcurrentHashMap用法案例详解

    一.概念 哈希算法(hash algorithm):是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值. 哈希表(hash table):根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址. 二.HashMap与HashTable 1,线程不安全的HashMap 因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CP

  • C++优先队列用法案例详解

    c++优先队列(priority_queue)用法详解 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除. 在优先队列中,元素被赋予优先级.当访问元素时,具有最高优先级的元素最先删除.优先队列具有最高级先出 (first in, largest out)的行为特征. 首先要包含头文件#include<queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队. 优先队列具有队列的所有特性,包括队列的基本操作,只是在这基础上

  • CSS hack用法案例详解

    之前一直很狭隘的对CSS hack持有偏见,觉得写得规范的代码不应该使用这些"邪门歪道",可最近产品发布一个小问题却让我头疼了很久,最后查了一下资料,竟然使用CSS hack轻松解决了,不得不服啊,对付神奇的IE就得使用这些利器. 什么是CSS hack 由于不同的浏览器,甚至同一浏览器的不同版本对CSS的解析认识不一样,导致生成的页面效果不一致,写出针对不同浏览器CSS code就称为CSS hack. 常用的CSS hack 有三种方式,CSS 内部hack.选择器hack.HTM

  • C# Request.Form用法案例详解

    在CS文件中获得对应页面中的下拉框DropDownList_sitebranch值可以有以下几种方法获得: siteInfo.FZJGID = DropDownList_sitebranch.SelectedItem.Value.Trim(); siteInfo.FZJGID = Request.Form["DropDownList_sitebranch"].ToString(); siteInfo.FZJGID = Request["DropDownList_sitebra

  • C++ ostream用法案例详解

    概述 在 C++中,ostream表示输出流,英文"output stream"的简称.在 C++中常见的输出流对象就是标准输出流cout,很少自定义ostream的对象,更多的是直接使用cout.那么 ostream 有什么用呢,来看一个场景: class CPoint { public: CPoint(int x_,int y_):x(x_),y(y_){} int x,y; }; 这里定义了一个简单的类CPoint,如果我们实例化该类过后,想要打印对象的值: CPoint poi

  • C# Console.WriteLine()用法案例详解

    以前用Console.WriteLine()的时候就只会用它直接输出string字符串,但后来发现它还有其它在有些场合下会十分方便的输出方法,这篇就记录一下这些方法的使用吧. 代码格式我就不写了,因为写了也不好理解,所以直接上示例了.  ① static void Main(string[] args) { int i = 6; string s = "输出"; Console.WriteLine("{0}还可以这样{1}哦.", i, s); Console.Wr

随机推荐