在ONDRAW中运行GDI+ 填充背景时,不起作用,不知道什么原因
- Graphics graphics(pDC->GetSafeHdc());
- Bitmap bmp(m_imgRec.Width(),m_imgRec.Height()); //第一步 创建与屏幕等大小的内存位图
- Graphics grbmp(&bmp);
- SolidBrush backBrush(RGB(255,255,255));
- grbmp.FillRectangle(&backBrush,0,0,m_imgRec.Width(),m_imgRec.Height()); //初始化内存位图背景
- graphics.DrawImage(&bmp,m_imgRec.left,m_imgRec.top,m_imgRec.Width(),m_imgRec.Height()); //第二步 将等屏幕大小内存位图绘制到屏幕上
程序初衷为:初始化客户区为白色,可是运行后,客户区为透明的,并不为白色,填充操作没有起不论什么效果,不知有人可否知道原因。
既然这样不行。就用GDI配合GDI+使用
创建memDC, CBitmap资源。 使用memDC直接填充, 然后创建内存DC 的GDI+ 对象 Graphics grbmp(memDC.GetSafeHdc()); 使用这个对象绘图
- CDC memDC;
- CBitmap bm;
- memDC.CreateCompatibleDC(pDC);
- bm.CreateCompatibleBitmap(pDC,m_imgRec.Width(),m_imgRec.Height());
- memDC.SelectObject(&bm);
- memDC.FillRect(&m_imgRec,&m_backBrush); //填充背景
- Graphics grbmp(memDC.GetSafeHdc()); //创建内存DC的GDI+对象
- grbmp.DrawImage(m_pBmp,0,0,nWidth,nHeight); //在内存DC上画图
- pDC->BitBlt(0,0,m_imgRec.Width(),m_imgRec.Height(),&memDC,0,0,SRCCOPY); //内存DC绘制到屏幕上
转自:http://blog.csdn.net/shuilan0066/article/details/8744226