LoadImage()使用
该系统被定义:
WINUSERAPI
HANDLE
WINAPI
LoadImageA(
HINSTANCE,
LPCSTR,
UINT,
int,
int,
UINT);
WINUSERAPI
HANDLE
WINAPI
LoadImageW(
HINSTANCE,
LPCWSTR,
UINT,
int,
int,
UINT);
#ifdef UNICODE
#define LoadImage LoadImageW
#else
#define LoadImage LoadImageA
#endif // !UNICODE
參数分别表示:
HINSTANCE---------包括所须要图片的实例的句柄。
LPCSTR--------------图片所在路径及文件名称。
UINT-------------------图片类型。
int-----------------------图片宽度。
int-----------------------图片高度。
UINT-------------------load flags(备注:到如今还没有搞懂)
样例:
HBITMAP hbitmap;
hbitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),"图片/aa.bmp",IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
应用别人的文章,文章是介绍该API函数在VB中的使用,VC中也能够借鉴:
【函数】
LoadImage
【操作系统】
Win9x:Y
WinNT:Y
【声明】
Function ulong LoadImage(ulong hInst,ref string lpsz,ulong un1,ulong n1,ulong n2,ulong un2) LIBRARY "user32.dll" ALIAS FOR "LoadImageA"
【说明】
加载一个位图、图标或指针
函数功能:该函数装载目标,光标,或位图。
函数原型:HANDLE LoadImage(NINSTANCE hinst,LPCTSTR lpszName。UINT uType,int cxDesired。int CyDesired,UINT fuLoad);
參数:
hinst:处理包括被装载图像模块的特例。若要装载OEM图像,则设此參数值为O。
lpszName:处理图像装载。
假设參数hinst为非空,并且參数fuLoad不包含LR_LOADFROMFILE的值时,那么參数lpszName是一个指向保留在hinst模块中装载的图像资源名称,并以NULL为结束符的字符串。
假设參数hinst为空,而且LR_LOADFROMFILE被指定,那么这个參数低位字一定是被装载的OEM图像标识的。OEM图像标识符是在WINUSER.H头文件里定义的,以下列举出前缀的含义:
OBM_ OEM:位图;OIC_OEM图标;OCR_OEM:光标。
假设參数fuLoad包括LR_LOADFROMFILE值,那么參数lpszName是包括有图像的文件名称。
uType:指定被装载图像类型。此參数能够为下列值,其含义例如以下:
IMAGE_BITMAP:装载位图;IMAGE_CURSOR:装载光标。IMAGE_ICON:装载图标。
cxDesired:指定图标或光标的宽度,以像素为单位。
假设此參数为零而且參数fuLoad值为LR_DEFAULTSIZE。那么函数使用SM_CXICON或SM_CXCURSOR系统公制值设定宽度;假设此參数为零而且值LR_DEFAULTSIZE没有被使用,那么函数使用眼下的资源宽度。
cyDesired:指定图标或光标的高度,以像素为单位。假设此參数为零而且參数fuLoad值为LR_DEFAULTSIZE,那么函数使用SM_CXICON或SM_CXCURSOR系统公制值设定高度;假设此參数为零而且值LR_DEFAULTSIZE没有被使用,那么函数使用眼下的资源高度。
fuLoad:依据以下复合值列表指定函数值,值含义例如以下:
LR_DEFAULTCOLOR:缺省标志;它不作不论什么事情。它的含义是“无LR_MONOCHROME”。
LR_CREATEDIBSECTION:当參数uType指定为IMAGE_BITMAP时,使得函数返回一个DIB部分位图,而不是一个兼容的位图。
这个标志在装载一个位图。而不是映射它的颜色到显示设备时很实用。
LRDIFAULTSIZE:若 cxDesired或cyDesired未被设为零,使用系统指定的公制值标识光标或图标的宽和高。假设这个參数不被设置且cxDesired或cyDesired被设为零。函数使用实际资源尺寸。
假设资源包括多个图像。则使用第一个图像的大小。
LR_LOADFROMFILE:根据參数lpszName的值装载图像。若标记未被给定。lpszName的值为资源名称。
LW_LOADMAP3DCOLORS:查找图像的颜色表而且按以下对应的3D颜色表的灰度进行替换。
颜色替代:Dk Gray RGB(128,128,128)COLOR_3DSHADOW。Gray RGB(192,192,192)COLOR_3DFACELt Gray RGB(223,223。223) COLOR_3DLIGHT LR_LOADTRANSPARENT;找到图像中的一个像素颜色值而且依据颜色表中系统的缺省颜色值替代其对应接口的值。图像中全部使用这样的接口的像素的颜色都变为系统的缺省窗口颜色。此至仅用来申请对应的颜色表。
若fuLoad包含LR_LOADTRANSPARENT和LR_LOADMAP3DCOLORS两个值,则LRLOADTRANSPARENT优先。可是。颜色表接口由COLOR_3DFACE替代,而不是COLOR_WINDOW。
LR_MONOCHROME:装载黑白图。
LR_SHARED:若图像将被多次装载则共享。假设LR_SHARED未被设置。则再向同一个资源第二次调用这个图像是就会再装载以便这个图像且返回不同的句柄。
不要对不同标准尺寸的图像使用LR_SHARED。装载后可能会有改变。或是从文件里被装载。
Windows 95和Windows 98:函数依据缓存中被请求的资源名发现的第一个图像,无论被请求的大小。LR_VGACOLOR:使用VGA真彩色。
返回值:假设函数执行成功,返回值是相关资源的数据的句柄。假设函数执行失败,返回值为NULL。若想获得很多其它的错误信息,请调用GetLastError函数。
注意:当使用完资源后,必须通过调用函数以释放加速器表、位图、光标、图标以及菜单所占的内存资源;加速器表:DesteoyAcceleratorTable;位图:DeleteObject;光标:DestroyCursor。图标:Destroylcon。菜单:DestroyMenu
当过程创建终止时。系统将自己主动删除这些资源。可是调用相关函数也能够保留内存降低过程的工作设置所占空间。
Windows CE:对IMAGE_BITMAP来说,參数cxDesred和cyDesred p必须为零。Windows CE不支持图表跳跃或闪烁。
參数fuLoad必须为(=LR_DEFAULTCOLOR)。
假设的目标平台不支持鼠标光标,能够指定在參数cxDesred和cyDsired的SM_CXCURSOR和SM_CYCURSOR的值,但不能指定參数uType中IMAGE_CURSOR的值。
假设目标平台支持鼠标光标,能够指定在參数cxDesired和cyDesred的SM_CXCURSOR和SM_CYCURSOR的值,也能指定參数uType中IMAGE_CURSOR的值。
速查:Windows NT 3.1、Windows 95、Windows CE 1.0以上,头文件:minuser.h:库文件;user32.lib;Unicode:在Windows NT上实现为Unicode和ANSI两种版本号。
【返回值】
Long,运行成功则返回对象的一个句柄。零表示失败
【其他】
【參数列表】
hInst ---------- Long。要从当中加载图象的DLL或应用程序模块或实例句柄。零表示装载一幅固有图象
lpsz ----------- String,欲加载图象的名字。如指定了hInst,就用这个參数指定资源或资源的标志符(标志符是一个长整数)。如hInst为空。并且已指定了LR_LOADFROMFILE,那么这个參数代表文件名称(位图、图标或指针文件)。
假设是个Long型值,这个參数就代表固有位图、图标或指针的编号
un1 ------------ Long。下述常数之中的一个,指定了欲加载的图象类型:IMAGE_BITMAP。
IMAGE_CURSOR, IMAGE_ICON
n1,n2 ---------- Long,要求的图象宽度和高度。图象会依据情况自己主动伸缩。如设为零,表示用图象的默认大小
un2 ------------ Long,下述常数的随意组合,它们都在api32.txt文件里得到了定义:
LR_DEFAULTCOLOR
以常规方式加载图象
LR_LOADREALSIZE
不正确图象进行缩放处理。忽略n1和n2的设置
LR_CREATEDIBSECTION
假设指定了IMAGE_BITMAP,就返回DIBSection的句柄,而不是位图的句柄
LR_DEFAULTSIZE
假设n1和n2为零。就使用由系统定义的图象默认大小,而不是图象本身定义的大小
LR_LOADFROMFILE
如hInst为零,lpsz就代表要加载适当类型的一个文件的名字,仅适用于Win95
LR_LOADMAP3DCOLORS
将图象中的深灰、灰、以及浅灰像素都替换成COLOR_3DSHADOW,COLOR_3DFACE以及COLOR_3DLIGHT的当前设置
LR_LOADTRANSPARENT
通过像素在第一场比赛更换整个系统图像像素
LR_MONOCHROME
的图像转换成单色
LR_SHARED
加载图像作为共享资源。在NT 4.0这被设置为使用自然资源装
LoadImage()使用的更多相关文章
- LoadImage函数问题
loadimage函数加载图片类型 Value Meaning IMAGE_BITMAP Loads a bitmap. IMAGE_CURSOR Loads a cursor. IMAGE_ICON ...
- LoadImage 和 BitBlt
#include <windows.h> #define WINDOWCLASS TEXT("Test") #define WNDTITLE TEXT("Te ...
- LoadImage()的使用
系统中的定义是: WINUSERAPIHANDLEWINAPILoadImageA( HINSTANCE, LPCSTR, UINT, int, int, UINT ...
- 在不同DPI屏幕环境下,让图标显示的尺寸保持不变,使用 LoadImage() 加载图标
之前写过的一个客户端程序中,需要在状态栏上显示图标: 我当时使用的是:HICON LoadIcon(HINSTANCE hInstance, LPCTSTR lpIconName); 在DPI:125 ...
- Processing中PImage类和loadImage()、createImage()函数的相关解析
聊一聊Processing中PImage类和loadImage().createImage()函数.因为要借P5做多媒体创意展示,图片是一个很重要的媒体.有必要就图片的获取和展放作总结. 首先 有一点 ...
- 驱动开发:内核枚举LoadImage映像回调
在笔者之前的文章<驱动开发:内核特征码搜索函数封装>中我们封装实现了特征码定位功能,本章将继续使用该功能,本次我们需要枚举内核LoadImage映像回调,在Win64环境下我们可以设置一个 ...
- 驱动开发:内核监视LoadImage映像回调
在笔者上一篇文章<驱动开发:内核注册并监控对象回调>介绍了如何运用ObRegisterCallbacks注册进程与线程回调,并通过该回调实现了拦截指定进行运行的效果,本章LyShark将带 ...
- 驱动开发:内核运用LoadImage屏蔽驱动
在笔者上一篇文章<驱动开发:内核监视LoadImage映像回调>中LyShark简单介绍了如何通过PsSetLoadImageNotifyRoutine函数注册回调来监视驱动模块的加载,注 ...
- 【Problem solved】 error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
选择“项目”菜单->项目属性->配置属性->常规->字符集,改为“未设置”即可.
随机推荐
- ios html5 设定PhoneGap开发环境
怎么样IOS平台搭建PhoneGap开发环境(PhoneGap2.5) (2013-03-13 14:44:51) 标签: c=blog&q=it&by=tag" targe ...
- Spring4 MVC 多文件上传(图片并展示)
开始需要在pom.xml加入几个jar,分别是 <dependency> <groupId>commons-fileupload</groupId> <art ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- ZOJ 1654 二分匹配基础题
题意: 给你一副图, 有草地(*),空地(o)和墙(#),空地上可以放机器人, 机器人向上下左右4个方向开枪(枪不能穿墙),问你在所有机器人都不相互攻击的情况下能放的最多的机器人数. 思路:这是一类经 ...
- C++ 指针—02 指针与引用的对照
★同样点: ●都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:而引用则是某块内存的别名. ★不同点: ●指针是一个实体,而引用仅是个别名: ●引用仅仅能在定义时被初始化一次,之后不可变: ...
- SPOJ DISUBSTR(后缀数组)
传送门:DISUBSTR 题意:给定一个字符串,求不相同的子串. 分析:对于每个sa[i]贡献n-a[i]个后缀,然后减去a[i]与a[i-1]的公共前缀height[i],则每个a[i]贡献n-sa ...
- contiki etimer部分
1.前言 contiki是一款小型开源,易于移植的多任务操作系统,专门为无线传感网设计,适合内存受限制的网络系统.国内的研究和应用还处于初级阶段,甚至还不知道这个contiki如何发音,也没有 ...
- hdu5172(线段树)
传送门:GTY's gay friends 题意:判断区间[l,r]内的数字是否符合1~len(r-l+1)的一个全排列. 分析:pos[i]记录数字i出现的最大位置,pre[i]记录在位置i的数字a ...
- Heritrix与Nutch对比
Nutch 开发语言:Java http://lucene.apache.org/nutch/ 简介: Apache的子项目之一,属于Lucene项目下的子项目. Nutch是一个基于Lucene,类 ...
- Hdu 4734 【数位DP】.cpp
题意: 我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字. 题目给出a,b,求出0~ ...