MFC如何在单文档显示多幅位图?

guoxijun 2010-04-20 01:02:04
Y坐标固定,在不同的X坐标点显示不同的位图
譬如:
(10,10)显示bmp1
(10,50)显示bmp2
(10,90)显示bmp3
...全文
439 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
尹成 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 an_bachelor 的回复:]
重载OnDraw()

用GDI+的DrawImage msdn例子:
Graphics graphics(hdc);

// Create an Image object.
Image image(L"climber.jpg");

// Create a Pen object.
Pen pen (Color(255, 255, 0, 0), 2);

……
[/Quote]
完全正确
an_bachelor 2010-04-20
  • 打赏
  • 举报
回复
重载OnDraw()

用GDI+的DrawImage msdn例子:
Graphics graphics(hdc);

// Create an Image object.
Image image(L"climber.jpg");

// Create a Pen object.
Pen pen (Color(255, 255, 0, 0), 2);

// Draw the original source image.
graphics.DrawImage(&image, 10, 10);

// Create a Rect object that specifies the destination of the image.
Rect destRect(200, 50, 150, 75);

// Draw the rectangle that bounds the image.
graphics.DrawRectangle(&pen, destRect);

// Draw the image.
graphics.DrawImage(&image, destRect);


没错那些数字就是坐标
尹成 2010-04-20
  • 打赏
  • 举报
回复
LoadBitmap
CreateCompatibleDC
SelectObject
BitBlt

重写OnDraw ,创建图片
Eleven 2010-04-20
  • 打赏
  • 举报
回复
GDI+比较方便。。。
liumenghappy 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]

在 CView::OnDraw 里面依次
LoadBitmap
CreateCompatibleDC
SelectObject
BitBlt
一幅一幅绘制。
[/Quote]
正解
zhangxin357 2010-04-20
  • 打赏
  • 举报
回复
你可以使用CImage类实现,此类由MFC和ATL共享。

void CdlgDlg::OnBnClickedButton1()
{
//IDC_STATIC_IMAGE是你需要放置图片的静态控件ID
CDC * pDC = GetDlgItem(IDC_STATIC_IMAGE)->GetDC();
CImage image;
//文件路径
image.Load(_T("c:\\image1.jpg"));
image.Draw(pDC->m_hDC, 0,0,100,100,0,0,100,100);//
}

如果你要循环显示图片,只需临时加载不同的图片即可,如
image.Load(_T("c:\\image2.jpg"));
类似
lllyyy2403 2010-04-20
  • 打赏
  • 举报
回复
CBitmap* pBitmap = new CBitmap;
BITMAP BmpInfo;
CBitmap* pOldBitmap;
CDC* pDisplayMemDC=new CDC;
pDisplayMemDC->CreateCompatibleDC(pDC);

pBitmap->LoadBitmap(IDB_TITLE_LEFT);
pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
pBitmap->GetBitmap(&BmpInfo);

// x,y为绘图位置 ,必要时此语句要有For(..;..;..)控制
pDC->BitBlt(x,y, BmpInfo.bmWidth, BmpInfo.bmHeight, pDisplayMemDC, 0, 0, SRCCOPY);

pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();

ReleaseDC(pDisplayMemDC);//记得执行以下的语句
delete pDisplayMemDC;
delete pBitmap;
wwgddx 2010-04-20
  • 打赏
  • 举报
回复
楼上的两位正解
threenewbee 2010-04-20
  • 打赏
  • 举报
回复
在 CView::OnDraw 里面依次
LoadBitmap
CreateCompatibleDC
SelectObject
BitBlt
一幅一幅绘制。

15,979

社区成员

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

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