|
(1) LoadImage:加载图标,光标,或位图
HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int cyDesired,UINT fuLoad);
第一个参数:hinst:处理包含被装载图像模块的实例。若要装载OEM图像,则设此参数值为0。
第二个参数:lpszName:1.如果参数hinst为non-NULL ,而且参数fuLoad省略LR_LOADFROMFILE的值时,那么参数lpszName是一个指向保留在hinst模块中装载的图像资源名称,并以NULL为结束符的字符串。2.如果参数hinst为空,并且LR_LOADFROMFILE未被指定,那么这个参数低位字一定是被装载的OEM图像标识的。OEM图像标识符是在WINUSER.H头文件中定义的,下面列举出前缀的含义:OBM_ OEM:位图;OIC_OEM图标;OCR_OEM:光标。3.如果参数fuLoad包含LR_LOADFROMFILE值,那么参数lpszName是包含有图像的文件名。
第三个参数:uType:加载类型(IMAGE_BITMAP:装载位图;IMAGE_CURSOR:装载光标;IMAGE_ICON:装载图标。)
第四个参数:cxDesired:宽度,以像素为单位。
第五个参数:cyDesired:高度,以像素为单位。(如果参数四或者五为零并且参数fuLoad值为LR_DEFAULTSIZE,那么函数使用SM_CXICON或SM_CXCURSOR系统公制值设定高度;如果此参数为零并且值LR_DEFAULTSIZE没有被使用,那么函数使用目前的资源高度。)
第六个参数:fuLoad:1.LR_DEFAULTCOLOR:缺省标识,不做任何事,2.LR_CREATEDIBSECTION:当参数uType指定为IMAGE_BITMAP时,使得函数返回一个DIB部分位图,而不是一个兼容的位图。3.LR_DEFAULTSIZE:若 cxDesired或cyDesired被设为零,使用系统指定的公制值标识光标或图标的宽和高。如果这个参数不被设置且cxDesired或cyDesired被设为零,函数使用实际资源尺寸。如果资源包含多个图像,则使用第一个图像的大小。4.LR_LOADFROMFILE:根据参数lpszName的值装载图像。若标记未被给定,lpszName的值为资源名称。5.LR_LOADMAP3DCOLORS:查找图像的颜色表并且按下面相应的3D颜色表的灰度进行替换。(LR_LOADTRANSPARENT优先级比LR_LOADMAP3DCOLORS更高)。6.LR_MONOCHROME:装载黑白图。7.LR_SHARED:若图像将被多次装载则共享。如果LR_SHARED未被设置,则再向同一个资源第二次调用这个图像时就会再装载一遍这个图像且返回不同的句柄。8.LR_VGACOLOR:使用VGA真彩色。
返回值:成功得到加载的句柄,失败:返回NULL,可用GetLastError()得到错误信息。
具体事例如下:
CRect rc;
GetClientRect(&rc);
HBITMAP bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),strImagePath,IMAGE_BITMAP,rc.Width(),rc.Height(),LR_LOADFROMFILE);
CStatic* pBackGround = ( CStatic* )GetDlgItem( IDC_STATIC_BACKGROUND );
pBackGround->SetBitmap(bitmap);
或者
CRect rc;
GetClientRect(&rc);
HBITMAP bitmap = (HBITMAP)::LoadImage(NULL,strImagePath,IMAGE_BITMAP,rc.Width(),rc.Height(),LR_LOADFROMFILE|LR_CREATEDIBSECTION);
CBitmapButton pBitmapButton = new CBitmapButton;
pBitmapButton->Create( _T("这是一个图片按钮") ,BS_BITMAP | WS_CHILD | WS_VISIBLE |WS_EX_TRANSPARENT,rc, this,FULLSCREEN_BUTTON_ID );
pBitmapButton->SetBitmap(bitmap);
(2)LoadBitmap: 从模块的可执行文件中加载指定的位图资源。
HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName);
第一个参数:hInstance:指向模块实例的句柄。
第二个参数:lpBitmapName:指向字符串(以NULL结束)批指针。该字符串包含了要加载的位图资源名称。另外一种方式就是该参数可以由低位字是资源标识符、高位字为0位形式组成。可以使用宏MAKEINTRESOURCE来创建这个参数值。
返回值:如果函数执行成功,则返回值是指向指定位图的句柄。如果函数执行失败,那么返回值是NULL。可用GetLastError()得到错误信息。
具体事例如下:
(3) CBitmap::LoadBitmap :
(4)直接加载资源: |
|