设置VC对话框背景图

  VC对话框默认的灰度背景实在是不美观,填充背景图成了改善用户界面的一个很好的选择。
  首先在资源视图中添加一个位图资源,如命名为IDB_BMPBK。
  在对话框中添加OnEraseBkgnd()事件处理函数,用于擦除背景进行重绘。其中添加的代码如下:
BOOL DialogClass::OnEraseBkgnd(CDC* pDC)
{
//创建内存DC
CDC MemDC;
//CBitmap对象
CBitmap Bitmap,*pOldBitmap;
//BITMAP句柄
BITMAP bm;
//加载位图
Bitmap.LoadBitmap(IDB_BMPBK);
//将位图资源与句柄绑定
Bitmap.GetObject(sizeof(BITMAP),&bm);
//创建与内存兼容的DC
MemDC.CreateCompatibleDC(pDC);
//替换原位图
pOldBitmap=(CBitmap*)(MemDC.SelectObject(&Bitmap));
//获取绘制的区域
CRect rcClient;
GetClientRect(&rcClient);
//绘制到客户区
pDC->BitBlt(0,0,rcClient.Width(),rcClient.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(pOldBitmap);
MemDC.DeleteDC();
return TRUE;
}
默认生成的OnEraseBkgnd()处理函数会有调用基类的处理函数然后再返回结果,要注意把这一句直接删除,然后直接返
TRUE。
  • 收藏
  • 评论
  • 举报
提问和评论都可以,用心的回复会被更多人看到 评论
发布评论
相关文章