如何将位图置为对话框的背景呢?

ningyf 2004-01-10 12:26:53
想做一个登陆框,背景是一幅漂亮图片
...全文
30 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tblue7 2004-01-10
  • 打赏
  • 举报
回复
我也觉得可以拦截WM_ERASEBKGND ,然后重载OnEraseBkgnd( CDC* pDC ); 然后就在这个pDC上画要的背景,不过最后一定要返回删除默认行为和返回true,不然没有用的。
wwwhb2000 2004-01-10
  • 打赏
  • 举报
回复
在OnEraseBkground()中添加不行吗?
mynamelj 2004-01-10
  • 打赏
  • 举报
回复
1.首先在资源列表中添加一幅位图.
2在OnPaint()这个函数里添以下代马:
////////////////////////////////////////
//联系人:小李
//联系地址:bios_lj@eyou.com
//2004.01.10
////////////////////////////////////////
void CMyDialog::OnPaint()
{
//.............
//.......
//以上自动生成的代码省略...
else
{
CPaintDC dc(this); //定义设备上下文指针
CDC BmpDC;
CBitmap Mybmp; //位图变量
CBitmap *OldBmp;
CRect rect;
Mybmp.LoadBitmap(IDB_BITMAP1); //从资源中装入位图
GetClientRect(rect); //得到客户区域
BmpDC.CreateCompatibleDC(&dc);
OldBmp = BmpDC.SelectObject(&Mybmp);
dc.BitBlt(0,0,rect.Width(),rect.Height(),
&BmpDC,0,0,SRCCOPY); //在显示器上粘贴位图
BmpDC.SelectObject(OldBmp);
}
////////////////////////////////这样就可以显示一幅漂亮的背景位图了!
zhucde 2004-01-10
  • 打赏
  • 举报
回复
Dlg.h

CBrush m_brBk;//在public中定义



Dlg.cpp

在OnInitialUpdate()中

CBitmap bmp;

bmp.LoadBitmap(IDB_BITMAP);

m_brBk.CreatePatternBrush(&bmp);

bmp.DeleteObject();



在OnCtlColor()中添加

if (pWnd == this)

{

return m_brBk;

}

15,979

社区成员

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

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