★★如何给一个Dialog加背景图片?★★

uoyevoli 2003-08-03 03:00:58
我刚学vc,请多关照!

我用了一个铺满整个窗口的Picture控件。但它只支持256色的位图资源,很难看的!!

还有,我的第二个想法是:在对话框显示的内容改变时在DC上绘画。这样也可以实现背景图片。但一直不知道该怎么做,老是得不到onPaint()消息!!
...全文
390 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
uoyevoli 2003-08-06
  • 打赏
  • 举报
回复
谢谢楼上的,基本解决了,只是偶尔有闪烁,为什么?

那个类请发给我吧。hyzs@sina.com
谢谢了!!
sky51fly 2003-08-04
  • 打赏
  • 举报
回复
楼主,不知你解决了吗?

m_pbmp->LoadBitmap(nID);

VC也可以加载JPG等格式文件,需要的话我可以给你一个类
vcforever 2003-08-03
  • 打赏
  • 举报
回复
把jpg图片打开后另存成bmp图片就行了!
uoyevoli 2003-08-03
  • 打赏
  • 举报
回复
我不会创建CBitmap对象的实例,请指点!
uoyevoli 2003-08-03
  • 打赏
  • 举报
回复
非常感谢楼上的,但是我如何把一幅真彩24的位图或jpg图片文件做成BITMAP呢?

也就是说,你的例子一开始就假设bm已经创建并置入了图片,但这一步也是我不会做的。还请多多指教!!
sky51fly 2003-08-03
  • 打赏
  • 举报
回复
漏了: CBitmap *m_pbmp;
sky51fly 2003-08-03
  • 打赏
  • 举报
回复
BOOL CLotteryDlg::OnEraseBkgnd(CDC* pDC)
{

BITMAP bm;
CDC dcMem;
m_pbmp->GetObject(sizeof(bm),(LPVOID)&bm);
dcMem.CreateCompatibleDC(pDC);
CBitmap *pBmpOld=(CBitmap*)dcMem.SelectObject(m_pbmp);

CRect rcClient;
GetClientRect(rcClient);
pDC->StretchBlt(0,0,
rcClient.right-rcClient.left,
rcClient.bottom-rcClient.top,
&dcMem,
0,0,
bm.bmWidth,bm.bmHeight,
SRCCOPY
);
dcMem.SelectObject(pBmpOld);
//return CDialog::OnEraseBkgnd(pDC);
return TRUE;
//return CDialog::OnEraseBkgnd(pDC);
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧