if(IsSetPhoto==true)
{
if(m_bmp.m_hObject!=NULL)
m_bmp.DeleteObject();    IsSetPhoto=false;
static char BASED_CODE szFilter[]="BMP Files(*.bmp)|*.bmp|All Files(*.*)|*.*||";
CFileDialog dlg(TRUE,"BMP",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);
if(dlg.DoModal()!=IDOK)
return;
CString PathName=dlg.GetPathName();// 得到BMP文件路径 MessageBox(PathName," 文件路径");
// PathName="D:\\钥匙1.bmp"; HBITMAP hbmp=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),PathName,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_LOADFROMFILE); if(hbmp==NULL)
{
MessageBox("打开文件失败");
return ;
} m_bmp.Attach(hbmp);
DIBSECTION ds;
BITMAPINFOHEADER &bminfo=ds.dsBmih;
m_bmp.GetObject(sizeof(ds),&ds);
CPaintDC localdc(GetDlgItem(IDC_PHOTO)); CRect rect;
GetDlgItem(IDC_PHOTO)->GetClientRect(&rect);
CDC memdc;
memdc.CreateCompatibleDC(&localdc); CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&localdc,rect.Width(),rect.Height());
memdc.SelectObject(&bitmap); CWnd::DefWindowProc(WM_PAINT,(WPARAM)memdc.m_hDC,0);
CDC maskdc;
maskdc.CreateCompatibleDC(&localdc);
CBitmap maskbitmap;
maskbitmap.CreateBitmap(rect.Width(),rect.Height(),1,1,NULL);
maskdc.SelectObject(&maskbitmap);
maskdc.BitBlt(0,0,rect.Width(),rect.Height(),&memdc,rect.left,rect.top,SRCCOPY);
CBrush brush;
brush.CreatePatternBrush(&m_bmp);
dc.BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memdc,rect.left,rect.top,SRCPAINT);
brush.DeleteObject();}//end of if这是书上的一段原代码,可是就是不能显示出BMP图像来,请问各位是什么原因呢???
在picture的设置里面是设置的位图