不将图片作为资源加载到工程中,而是直接使用:
示例:
HANDLE handle = LoadImage(NULL,"C:\\UserData\\image.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
m_Bitmap.SetBitmap((HBITMAP)handle);
HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int cyDesired,UINT fuLoad);
如果参数fuLoad包含LR_LOADFROMFILE值,那么参数lpszName是包含有图像的文件名。
uType:指定被装载图像类型。此参数可以为下列值,其含义如下:
IMAGE_BITMAP:装载位图;
IMAGE_CURSOR:装载光标;
IMAGE_ICON:装载图标。
cxDesired:指定图标或光标的宽度,以像素为单位。
cyDesired:指定图标或光标的高度,以像素为单位。
fuLoad:根据下面复合值列表指定函数值,值含义如下:
LR_DEFAULTCOLOR:缺省标志;它不作任何事情。它的含义是“无LR_MONOCHROME”。
LR_CREATEDIBSECTION:当参数uType指定为IMAGE_BITMAP时,使得函数返回一个DIB部分位图,而不是一个兼容的位图。这个标志在装载一个位图,而不是映射它的颜色到显示设备时非常有用。
LR_DEFAULTSIZE:若 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,装载后可能会有改变,或是从文件中被装载。