设置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。