我在vs2005下建了个wince的mfc基于对话框的工程,想在对话框上显示背景图片 可是闪一下就没了 求解释

BOOLCPrana_testDlg::OnEraseBkgnd(CDC*pDC){//TODO:在此添加消息处理程序代码和/或调用默认值CPaintDCdc(this)... BOOL CPrana_testDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1);
//IDB_BITMAP是你自己的图对应的ID
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
return CDialog::OnEraseBkgnd(pDC);
}
展开
 我来答
Linux线程
2011-07-27 · 超过20用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:35.9万
展开全部
你用CPaintDC绘制图片之后,被 “CDialog::OnEraseBkgnd(pDC);”这句话给擦除了。因此出现了闪一下的情况。
你有两种解决方法:
1、不要用CPaintDC来获取dc,而直接使用函数的入口参数pDC来进行绘制;另外,return TRUE,别调用CDialog::OnEraseBkgnd(pDC);
2、把这个函数的内容移到OnPaint函数中。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式