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

guoxijun 2010-04-20 01:02:04
Y坐标固定,在不同的X坐标点显示不同的位图
譬如:
(10,10)显示bmp1
(10,50)显示bmp2
(10,90)显示bmp3
...全文
578 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
一幅一幅绘制。
内容概要:本文介绍了基于10机39节点的电力系统仿真资源,依托Matlab与Simulink平台,构建了完整的电力系统动态仿真模型,涵盖系统建模、潮流计算、暂态稳定性分析、短路故障模拟及动态响应评估等核心内容。资源不仅实现了标准测试系统的还原,还进一步拓展至虚拟同步发电机(VSG)控制、储能系统集成、微电网优化调度等先进应用场景,深入探讨了现代电力系统中新能源接入、频率调节与电压支撑等关键技术问题,具有较强的理论深度与工程实践价值。; 适合人群:具备电力系统分析基础及Matlab/Simulink操作能力的高校研究生、科研人员和电力行业工程技术人员,特别适用于从事电力系统稳定性研究、新能源并网技术、智能电网优化控制等相关领域的专业人员。; 使用场景及目标:①用于电力系统教学与科研中的动态仿真与稳定性分析;②支持含高比例新能源的微电网、储能系统与虚拟同步机等新型设备的控制策略验证;③为电力系统故障诊断、暂态过程分析、运行优化与调度决策提供高精度仿真平台;④辅助完成学术论文复现、课题研究及创新性算法开发。; 阅读建议:建议读者结合所提供的Matlab代码与Simulink模型逐模块运行,深入理解系统参数设置、元件建模方法与仿真流程设计,重点关注故障设置、控制器配置与仿真结果分析环节。对于复杂控制策略部分,应配合相关理论文献进行对照学习,并尝试在现有模型基础上进行功能扩展与算法改进,以提升综合应用与创新能力。

15,976

社区成员

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

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