将.bmp添加到资源里, LoadBitmap(IDB_BITMAP1)
CString FileName;
CFileDialog dlg(true,NULL,NULL,OFN_READONLY,"位图文件(*.BMP)|*.BMP",this->GetWindow(GW_OWNER));
dlg.DoModal();
FileName=dlg.GetPathName();
CDIBBitmap Bitmap;
if (Bitmap.LoadBitmap(FileName))
{
//读入了位图资源,开始装配上下文
CDC* pDC;
pDC=this->GetDC();
pShowDC=new CDC;
pShowDC->CreateCompatibleDC(pDC);
pShowDC->SelectObject(&Bitmap);
Width=Bitmap.Width;
Height=Bitmap.Height;
pShowDC->BitBlt(0,0,Width,Height,pShowDC,0,0,SRCCOPY);
loadimage有用吗?
设lpszName 是你要加载的位图路径,pDC是显示DC
则:
const char* lpszName = "c:\\test.bmp";
HBITMAP hBitmap = (HBITMAP)::LoadImage(NULL,
lpszName,
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE);
CBitmap bmp;
bmp.Attach(hBitmap);
BITMAP bm;
bmp.GetBitmap(&bm);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap *pOldBmp = memDC.SelectObject(&bmp);
pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBmp);
---------------------------------------
void CTestListDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
HBITMAP hBitmap;
hBitmap=(HBITMAP)LoadImage(
::AfxGetInstanceHandle(),"res\\background.bmp",
IMAGE_BITMAP,0,0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION);
ASSERT( hBitmap);
HBITMAP hOldBitmap;
CDC MemDC;
CRect rect;
CDC *pDC=this->GetDC();
MemDC.CreateCompatibleDC(pDC);
GetClientRect(rect);
hOldBitmap=(HBITMAP)MemDC.SelectObject(hBitmap);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(hOldBitmap);
// Do not call CDialog::OnPaint() for painting messages
}
http://www.codeproject.com/bitmap/cximage.asp
http://www.codeproject.com/buttonctrl/hoverbuttonex.asp
http://www.codeproject.com/useritems/cbitmask.asp
http://www.codeproject.com/gdi/gdionbitmaps.asp