MFC改变模态对话框的背景颜色,添加背景图片
VC中为对话框添加背景图片(如下),但是为模态对话框添加怎么实现呢?1.[代码]使用画刷CBrushvoidCDlg::OnPaint(){CPaintDCdc(this...
VC中为对话框添加背景图片(如下),但是为模态对话框添加怎么实现呢?
1. [代码]使用画刷CBrush
void CDlg::OnPaint()
{
CPaintDC dc(this);//用于画图的设备上下文
//加载背景位图
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);//建立画刷
dc.SelectObject(brush);
CRect rect;
GetClientRect(rect);//获得客户区大小
dc.Rectangle(rect);//画矩形,并用图片的画刷填充 展开
1. [代码]使用画刷CBrush
void CDlg::OnPaint()
{
CPaintDC dc(this);//用于画图的设备上下文
//加载背景位图
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);//建立画刷
dc.SelectObject(brush);
CRect rect;
GetClientRect(rect);//获得客户区大小
dc.Rectangle(rect);//画矩形,并用图片的画刷填充 展开
2个回答
展开全部
你定向求助了两次,那边的另一位朋友的回答基本正确。
背景图片无关模态非模态。
对话框背景,一般推荐在OnEreaseBkgnd里面做,做好CBrush brush(&bitmap);刷子之后,直接给背景画刷就可以了。
如果在OnPaint里面做,也是可以的,一般推荐用内存DC做双缓存,将bitmap位图SelectObject放到一个memDC里面,通过BitBlt或StretchBlt贴图,方便控制效果。当然你的代码也行,只是效率稍微有些低,注意之后将brush释放出来,否则会有内存资源泄漏。
背景图片无关模态非模态。
对话框背景,一般推荐在OnEreaseBkgnd里面做,做好CBrush brush(&bitmap);刷子之后,直接给背景画刷就可以了。
如果在OnPaint里面做,也是可以的,一般推荐用内存DC做双缓存,将bitmap位图SelectObject放到一个memDC里面,通过BitBlt或StretchBlt贴图,方便控制效果。当然你的代码也行,只是效率稍微有些低,注意之后将brush释放出来,否则会有内存资源泄漏。
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询