CRect rc;
this->GetClientRect(&rc);
CDC* pDC=GetDC();
CBitmap bmp,memBitmap;
bmp.LoadBitmapW(IDB_BITMAP_ROSE);
memBitmap.CreateCompatibleBitmap(pDC,rc.Width(),rc.Height());
CDC memDC;
memDC.CreateCompatibleDC(pDC);
Graphics graphics(memDC.m_hDC);
Image ima(L"玫瑰紫花边.bmp");
graphics.DrawImage(&ima,rc.Width(),rc.Height());
pDC->BitBlt(0,0,rc.Width(),rc.Height(),&memDC,0,0,SRCCOPY);以上代码是想用兼容DC和的方法在屏幕上绘制位图,但是不成功,求解
this->GetClientRect(&rc);
CDC* pDC=GetDC();
CBitmap bmp,memBitmap;
bmp.LoadBitmapW(IDB_BITMAP_ROSE);
memBitmap.CreateCompatibleBitmap(pDC,rc.Width(),rc.Height());
CDC memDC;
memDC.CreateCompatibleDC(pDC);
Graphics graphics(memDC.m_hDC);
Image ima(L"玫瑰紫花边.bmp");
graphics.DrawImage(&ima,rc.Width(),rc.Height());
pDC->BitBlt(0,0,rc.Width(),rc.Height(),&memDC,0,0,SRCCOPY);以上代码是想用兼容DC和的方法在屏幕上绘制位图,但是不成功,求解
你根本没有把memBitmap选入到memDC中去啊
这时你对memDC所有的绘图都是无效的
需要用memDC.SelectObject(&memBitmap)选入
内存设备上下文memDC和当前设备上下文pDC到底有什么不一样呢,我原来的理解是两者的操作并没有太大的不一样,只是在memDC上绘图看不出来而已
CRect rc;
this->GetClientRect(&rc);
CDC* pDC=GetDC();
CBitmap bmp,memBitmap;
bmp.LoadBitmapW(IDB_BITMAP_ROSE);
memBitmap.CreateCompatibleBitmap(pDC,rc.Width(),rc.Height());
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&memBitmap);
Graphics graphics(memDC.m_hDC);
Image ima(L"玫瑰紫花边.bmp");
graphics.DrawImage(&ima,rc.Width(),rc.Height());
pDC->BitBlt(0,0,rc.Width(),rc.Height(),&memDC,0,0,SRCCOPY);但是不行啊,这样子屏幕变成一片黑色,什么都没有画出来
最好放在OnDraw里
没有人对GDI+绘图比较熟吗
graphics.DrawImage(&ima,0,0,rc.Width(),rc.Height());
这样子就可以了,太感谢了