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真彩色。this
返回值:成功获得加载的句柄,失败:返回NULL,可用GetLastError()获得错误信息。spa
具体事例以下:code
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);
或者htm
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);