15,978
社区成员
发帖
与我相关
我的任务
分享
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, _T("F:\\11.bmp"), IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
ASSERT(hBitmap);
CButton* pButton = (CButton*)GetDlgItem(IDC_BUTTON1);
ASSERT(pButton);
pButton->ModifyStyle(0, BS_BITMAP);
pButton->SetBitmap(hBitmap);
//画图标
void CXPButton::DrawIcon(CDC* pDC,DWORD IconID,CRect Rect)
{
// Rect.DeflateRect(3,3);
//求图标的句柄
if(fhIcon)
::DestroyIcon(fhIcon);
fhIcon=NULL;
if(fIconNameID==ICON_NAME)//如果是名称
{
#ifdef _WIN32_WCE
ExtractIconEx(fIconName,0,&fhIcon,NULL,1);
#else
fhIcon=(HICON)::LoadImage(NULL,fIconName,IMAGE_ICON,0,0,LR_LOADFROMFILE );
#endif
}
else if(fIconNameID==ICON_ID)//如果是ID
{
HINSTANCE fhInstResource=AfxFindResourceHandle(MAKEINTRESOURCE(IconID),RT_GROUP_ICON);
fhIcon=(HICON)::LoadImage(fhInstResource,MAKEINTRESOURCE(IconID),IMAGE_ICON,0,0,0);
}
//求要显示的位置
int fSideLeftRight=(Rect.Width()-fBitmapIconSize.cx)/2;
Rect.left+=fSideLeftRight;
Rect.right-=fSideLeftRight;
int fSideTopBottom=(Rect.Height()-fBitmapIconSize.cy)/2;
Rect.top+=fSideTopBottom;
Rect.bottom-=fSideTopBottom;
//显示图标
int fOldMode=pDC->SetBkMode(TRANSPARENT);
pDC->DrawIcon(Rect.TopLeft(),fhIcon);
pDC->SetBkMode(fOldMode);
}