IPicture 使用 OnPaint 绘制图片,窗口最小化后,图片消失问题

xjb2001 2012-07-03 10:42:07
CPicture 就是封装的IPicture类 ,m_spIPicture就是 IPicture 实例

//绘图
BOOL CPicture::Render(CDC* pDC, CRect rc, LPCRECT prcMFBounds) const
{
ASSERT(pDC);

if (rc.IsRectNull()) {
CSize sz = GetImageSize(pDC);
rc.right = sz.cx;
rc.bottom = sz.cy;
}
long hmWidth ;
long hmHeight ; // HIMETRIC units
GetHIMETRICSize(hmWidth, hmHeight);
m_spIPicture->Render(*pDC, rc.left, rc.top, rc.Width(), rc.Height(),
0, hmHeight, hmWidth, -hmHeight, prcMFBounds);

return TRUE;
}
//事件
void CTestDlg::OnPaint()
{
CRect crt;
CRect rc;
m_img.GetClientRect(&crt);
rc.IntersectRect(&crt,&crt);
m_qr_pic.Render(m_qr_img_pDC,rc);
CDialog::OnPaint();
}


此代码,可正常情况下,可绘制图片,但是,当窗口被最小化后,再恢复
显示的图片就会丢失

我在 onsyscommand 窗口缩小时,绘制窗口,也只是缩小的时候,图片不丢失,窗口恢复,依然丢失

请指正
...全文
249 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2012-07-09
  • 打赏
  • 举报
回复
你在OnPaint里面加个bitblt最合理。
healer_kx 2012-07-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

m_spIPicture->Render(*pDC, rc.left, rc.top, rc.Width(), rc.Height(),
0, hmHeight, hmWidth, -hmHeight, prcMFBounds);

pDC 传错了
[/Quote]

UP
sevancheng 2012-07-03
  • 打赏
  • 举报
回复
m_spIPicture->Render(*pDC, rc.left, rc.top, rc.Width(), rc.Height(),
0, hmHeight, hmWidth, -hmHeight, prcMFBounds);

pDC 传错了
Cyuanyan 2012-07-03
  • 打赏
  • 举报
回复
不知道是不是局部变量和全局变量的问题
xjb2001 2012-07-03
  • 打赏
  • 举报
回复
锤子啊

onpaint 的时候,加上

CDialog::OnPaint();
CDialog::UpdateWindow();

什么都解决了

xjb2001 2012-07-03
  • 打赏
  • 举报
回复
我在DEBUG里面看过,其实窗口最小化后,再恢复,其实我有收到 onpaint 事件的,代码也执行了,可是图片不显示

难道最小化恢复时,dc 句柄有问题?


如果遮盖下显示区域,图片又重画了,正常显示了

迷茫到了
xjb2001 2012-07-03
  • 打赏
  • 举报
回复
m_qr_img_pDC = m_img.GetDC();


这个DC 是个全局的,就是我的 CStatic 的 dc ,窗口初始化就保存了,不变了
内容概要:本文围绕城市场景下的无人机三维路径规划问题,提出了一种新颖的多目标粒子群优化算法(NMOPSO),旨在解决高维复杂环境中路径规划面临的多重挑战。研究聚焦于导航变量的多目标优化,构建了一个包含路径长度、飞行安全性、能量消耗等多个相互冲突目标的优化模型,并采用改进的粒子群算法进行高效搜索,最终获得一组Pareto最优解集,为实际决策提供多样化路径选择方案。该方法结合Matlab代码实现,详细阐述了算法的设计机制、数学建模流程及仿真验证过程,充分展示了其在密集城市建筑环境中有效规避障碍物、满足飞行动力学约束并实现多目标权衡的能力,具有较强的工程应用价值。; 适合人群:具备一定优化算法理论基础和Matlab编程能力,从事无人机路径规划、智能交通系统、自动化控制、人工智能应用等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于城市环境中的无人机物流配送、巡检监控、应急救援等实际任务的三维路径规划;②为高维、非线性、多约束的多目标优化问题提供有效的算法设计思路与改进参考;③通过Matlab仿真平台复现算法,进一步开展性能测试、参数调优与算法对比研究,推动相关领域的技术创新。; 阅读建议:此资源强调算法原理与工程实践的深度融合,建议读者重点研读目标函数的构建方式、约束条件的处理策略以及NMOPSO算法的核心改进机制,并务必动手运行和调试所提供的Matlab代码,以深入理解算法在三维空间路径优化中的具体实现细节与实际表现。

15,976

社区成员

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

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