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 窗口缩小时,绘制窗口,也只是缩小的时候,图片不丢失,窗口恢复,依然丢失

请指正
...全文
259 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 ,窗口初始化就保存了,不变了
附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[坡道(ramp)] · 训练集:275 张 · 验证集:27 张 · 测试集:0 张 · 总计:302 张 该数据集聚焦于城市环境中各类建筑入口处的坡道设施,涵盖住宅、商铺、公共设施等多种场景,真实反映了无障碍通行设施在实际应用中的多样化形态。数据集中包含金属、橡胶、塑料等多种材质的坡道,以及不同尺寸、结构和安装方式的实例,充分体现了坡道在城市基础设施中的广泛部署与重要性。该数据集为城市智慧化管理、无障碍环境建设及公共安全监控提供了高质量的视觉基础支持。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 33 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.6372** mAP50-95 | 0.3401 Precision | 0.6603 Recall | 0.6190 train/box_loss | 1.0569 train/cls_loss | 0.7307 val/box_loss | 1.6084 val/cls_loss | 1.9323 【训练过程分析】 33 轮训练后 mAP50 仅 0.6372,模型收敛不充分。Loss 曲线前期下降后进入平台期,mAP 提升缓慢。mAP50-95 为 0.3401,定位精度同样偏低。 【模型性能评估】 Precision 0.6603、Recall 0.6190,精度高于召回,存在一... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

15,976

社区成员

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

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