winCE下 mfc程序如何给对话框添加背景图片 10

我在OnEraseBkgnd函数中添加了如下代码,但连接设备运行时不能显示设定背景图片,显示的是当前窗口的背景,不知道什么原因,小弟求教!!谢谢!BOOLCQiStart... 我在OnEraseBkgnd函数中添加了如下代码,但连接设备运行时不能显示设定背景图片,显示的是当前窗口的背景,不知道什么原因,小弟求教!!谢谢!
BOOL CQiStartDlg::OnEraseBkgnd(CDC* pDC)
{
CRect rc;
GetUpdateRect(&rc);//需要重画时使用GetUpdateRect,避免使用GetClientRect(),因为这个函数可能默写地方画不到
CDC srcDC;
srcDC.CreateCompatibleDC(pDC);
srcDC.SelectObject(m_pMainBg);

pDC->BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),&srcDC,rc.left,rc.top,SRCCOPY);
return TRUE;
// return CDialog::OnEraseBkgnd(pDC);
}
展开
 我来答
匿名用户
2015-03-31
展开全部
这是我OnEraseBkgnd的代码,试过显示正常,wincce 6.0下

//背景图片
//获得客户区尺寸
CRect rect;
GetClientRect(&rect);
//加载背景位图
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP_BG); //图片ID

//创建内存DC
CDC dc;
dc.CreateCompatibleDC(pDC);
//选择位图
CBitmap* pOldBitmap=dc.SelectObject(&bitmap);
SetStretchBltMode(pDC->m_hDC,COLORONCOLOR);//这个模式不设置的话会导致图片严重失真

BITMAP bmp;
bitmap.GetBitmap(&bmp);

//绘制位图
pDC->StretchBlt(0,0,rect.Width(), rect.Height(), &dc, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);

dc.SelectObject(pOldBitmap);
return TRUE;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式