MFC基本对话框中添加背景图片相关问题

如题,我先在基本对话框中添加并设计好界面布局后,参照网上的添加背景图片的方法,插入-》资源-》Bitmap-》引入,选择自己的图片如123.bmp,在程序voidCMyD... 如题,我先在基本对话框中添加并设计好界面布局后,参照网上的添加背景图片的方法,插入-》资源-》Bitmap-》引入,选择自己的图片如123.bmp ,在程序void CMyDlg::OnPaint()下的else中添加如下代码
CPaintDC dc(this);
CRect rc;
GetClientRect(&rc);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1);
bmpBackground.LoadBitmap((LPCTSTR)IDB_BITMAP1);

BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap* pbmpPri = dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rc.Width(), rc.Height(), &dcMem,0,0,bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);
编译OK,点击运行有提示窗口忽略后能运行成功,可是窗口中只显示出了插入的图片背景,里面的控件布局没显示出来,鼠标点击后编辑框、按钮能显示,static标题文字没法显示,求过来人指点一二,不胜感激!
展开
 我来答
来自月岩仪态万千的比目鱼
2014-07-02 · TA获得超过1571个赞
知道小有建树答主
回答量:1221
采纳率:50%
帮助的人:969万
展开全部

添加背景最好是放在OnEraseBkgnd(CDC* pDC)函数中,在OnPaint中有可能会闪屏。

// 	CBitmap m_pBmp;
//  BITMAP bm;
//  CDC dcMem;
//  m_pBmp.LoadBitmap(IDB_BITMAP_BG);
//  m_pBmp.GetBitmap(&bm);//得到位图尺寸 
//  dcMem.CreateCompatibleDC(pDC);
//  CBitmap* pOldBitmap = dcMem.SelectObject(&m_pBmp);
//  pDC->SetStretchBltMode(COLORONCOLOR);//这个模式不设置的话会导致图片严重失真
//  pDC->StretchBlt(0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, bm.bmWidth,bm.bmHeight,SRCCOPY); 
//  dcMem.SelectObject(pOldBitmap);
//  dcMem.DeleteDC();
用我这个代码

 

为什么要LoadBitmap 2次?

更多追问追答
追问
不加第二个loadbitmap的话,背景不出来。刚学MFC,你说的那个OnEraseBkgnd(CDC* pDC)函数,没找到啊
追答

类向导 消息

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式