picture控件中显示图片后,然后把程序最小化后再恢复显示,怎么图片不显示了,请问改怎么写啊,谢谢

lj1006 2008-06-11 04:54:33
void CView0::DrawUserPhoto(int x, int y, CDC *pDC)
{
if(!m_hPhotoBitmap) return;

HBITMAP OldBitmap;

CWnd *pWnd = GetDlgItem(IDC_PICTURE);
CRect rect;
pWnd->GetClientRect(&rect);
pDC = pWnd->GetDC();

CDC MemDC;



MemDC.CreateCompatibleDC(pDC);
OldBitmap=(HBITMAP)MemDC.SelectObject(m_hPhotoBitmap);



CBitmap bitmap;
BITMAP bmp;
bitmap.Attach(m_hPhotoBitmap);
bitmap.GetBitmap(&bmp);




pDC->StretchBlt(x,y,rect.Width(),rect.Height(),&MemDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);

MemDC.SelectObject(OldBitmap);

}

void CView0::OnPaint()
{
CPaintDC dc(this); // device context for painting

if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon
//dc.DrawIcon(x, y, m_hIcon);
}
else
{
CWnd *pWnd = GetDlgItem(IDC_PICTURE);
CRect rect;
pWnd->GetClientRect(&rect);
DrawUserPhoto(rect.left,rect.top,&dc);
CView::OnPaint();
}
}

以上是图片显示代码,请问该怎么修改啊,谢谢
...全文
245 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lj1006 2008-06-12
  • 打赏
  • 举报
回复
解决了,谢谢各位
lj1006 2008-06-12
  • 打赏
  • 举报
回复
我发现是
CBitmap bitmap;
BITMAP bmp;
bitmap.Attach(a);
bitmap.GetBitmap(&bmp);

pDC->StretchBlt(x,y,rect.Width(),rect.Height(),&MemDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);//动态显示图片

这段代码出了问题,如果把这段代码换成
pDC->BitBlt(x,y,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);//静态显示图片

就没问题了,那么用StretchBlt该怎么写啊
lj1006 2008-06-12
  • 打赏
  • 举报
回复
我就是响应WM_PAINT消息来显示啊,我是从书上刚学着写的,不知道错在哪里了
cnzdgs 2008-06-11
  • 打赏
  • 举报
回复
响应WM_PAINT消息来显示,不然一刷新就没有了。
palmax 2008-06-11
  • 打赏
  • 举报
回复
楼主,你想做什么?
OnPaint函数里
DrawUserPhoto(rect.left,rect.top,&dc); 你已经把CDC指针传了进去,在DrawUserPhoto函数里,你又给pDC重新赋值:pDC = pWnd->GetDC(); 你到底是什么意思,看不懂!
lj1006 2008-06-11
  • 打赏
  • 举报
回复
那改怎么写啊,谢谢
闪破风浪 2008-06-11
  • 打赏
  • 举报
回复
刷新了没有重绘制。。。。。。
内容概要:本文聚焦于高维多阶段随机规划问题,深入研究了正则化分解方法与马尔可夫过程在刻画不确定性动态演化的应用,并提供了完整的Python代码实现。通过引入正则化技术有效降低了高维随机优化问题的计算复杂度,结合马尔可夫链建模多阶段决策过程的不确定性传播机制,提升了模型在复杂动态环境下的求解效率与鲁棒性。研究涵盖了问题建模、算法设计、数值求解及结果分析全过程,具有较强的理论深度与工程实践价值; 适合人群:具备一定运筹学、优化理论基础及Python编程能力,从事智能决策、人工智能、能源系统优化、金融工程等相关领域的科研人员、高校研究生以及工业界研发工程师; 使用场景及目标:①应用于电力系统调度、供应链管理、金融资产配置等存在多阶段不确定性的复杂决策场景;②掌握高维随机规划的建模思路与高效求解技术,深入理解正则化方法与马尔可夫过程在实际优化算法的融合机制与实现路径; 阅读建议:建议结合提供的Python代码进行动手实践,重点关注算法实现细节、参数敏感性分析与收敛性验证,鼓励在不同应用场景迁移和进该方法,进一步探索其在分布鲁棒优化、动态规划等前沿方向的扩展潜力。

15,976

社区成员

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

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