15,978
社区成员
发帖
与我相关
我的任务
分享
CDC *dc;
dc = GetDC(); //得到对话框的设备环境
CDC dcMemory;
dcMemory.CreateCompatibleDC(dc); //得到与对话框设备环境相兼容的内存DC
CBitmap *bitmap;
bitmap = new CBitmap();
HBITMAP hbitmap;
hbitmap = (HBITMAP)::LoadImage(NULL,L"E:\\psb.jpg",
IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if(hbitmap)
{
bitmap->Attach(hbitmap);
}
else
{
AfxMessageBox(L"Error!!!");
ReleaseDC(dc);
ReleaseDC(&dcMemory);
delete bitmap;
return;
}
//取得图像的大小
long bmWidth,bmHeight; //图像的宽度和高度
BITMAP bm;
bitmap->GetBitmap(&bm);
bmWidth = bm.bmWidth;
bmHeight = bm.bmHeight;
dcMemory.SelectObject(bitmap);
//把内存的图像复制到对话框的DC中去
dc->BitBlt(0,0,bmWidth,bmHeight,&dcMemory,0,0,SRCCOPY);
CBitmap m_bitmap;
void LoadJpg(CBitmap &mBitmap,CString path);
.cpp
void XXX::LoadJpg(CBitmap &mBitmap,CString path)
{
CImage pic;
pic.Load(path);
CDC *pDC = GetDC();
CDC memDC;
memDC.CreateCompatibleDC(pDC);
mBitmap.CreateCompatibleBitmap(pDC,100,100);
CBitmap *OldBitmap =memDC.SelectObject(&mBitmap);
pic.Draw(memDC.m_hDC,0,0,100,100,0,0,100,100);
memDC.SelectObject(OldBitmap);
DeleteDC(memDC);
OldBitmap = NULL;
}
BOOL XXX::OnInitDialog()
{
LoadJpg(m_bitmap);
((CStatic *)GetDlgItem(IDC_STATIC_PIC))->SetBitmap(m_bitmap);
}