首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC怎样在【对话框】上创建兼容位图,并用兼容DC绘图失败,总是显示黑色背景,如何解决

2013-03-27 
MFC怎样在【对话框】上创建兼容位图,并用兼容DC绘图失败,总是显示黑色背景,怎么解决?我是想再IDC_FONT控件的

MFC怎样在【对话框】上创建兼容位图,并用兼容DC绘图失败,总是显示黑色背景,怎么解决?
我是想再IDC_FONT控件的周围绘制一个矩形框,但是填充颜色一直是黑的,无法改变。无论是在那块区域画图或者输入文字都无法显示,只是黑色背景,该怎么解决?

BOOL CSettingDlg::OnEraseBkgnd(CDC* pDC)
{
 // TODO: Add your message handler code here and/or call default
 /////////////////////////////////////////////////////////////////
 //////在对话框中用兼容DC的方式绘制图形
 /////////////////////////////////////////////////////////////////

 //创建兼容DC
 CDC memdc;
 memdc.CreateCompatibleDC(pDC);
 //获得控件矩形区域
 CRect rect;
 GetDlgItem(IDC_FONT)->GetWindowRect(&rect);
 ScreenToClient(&rect);
 rect = CRect(rect.left-10, rect.top-10, rect.right+10, rect.bottom+10);

 //创建兼容位图
 CBitmap bitmap;
 bitmap.CreateCompatibleBitmap(pDC, rect.Width(), rect.Height());
 memdc.SelectObject(&bitmap);
 //memdc.FillSolidRect(rect, pDC->GetBkColor());

 //创建画刷
  CBrush brush(RGB(255, 0, 0));
 memdc.FillRect(rect, &brush); //在绘制长方形时,用pen绘制边框颜色,用brush绘制填充颜色这两句没有作用
  pDC->BitBlt(rect.left, rect.top, rect.Width(), rect.Height(), &memdc, 0, 0, SRCCOPY);

  return true;
 //return CDialog::OnEraseBkgnd(pDC);
}



[解决办法]
另外跟踪一下,看看fillrect的时候,rect 的值是不是从0,0,开始的

热点排行