picture 显示图像

weasea 2010-01-13 02:48:35
void TestDlg::ShowExpression(bool bAll ,CString csExpressionFile)
{

CImage m_Image;

csExpressionFile=_T(".\\res\\")+csExpressionFile;
m_Image.Load(csExpressionFile);//装载图片

for(int i = 0; i < m_Image.GetWidth(); i++)
{
for(int j = 0; j < m_Image.GetHeight(); j++)
{
unsigned char* pucColor = reinterpret_cast<unsigned char *>(m_Image.GetPixelAddress(i , j));
pucColor[0] = pucColor[0] * pucColor[3] / 255;
pucColor[1] = pucColor[1] * pucColor[3] / 255;
pucColor[2] = pucColor[2] * pucColor[3] / 255;
}
}
if(bAll)
{
m_picture.Invalidate();
CDC* hdc = m_picture.GetDC();
m_Image.Draw(hdc->m_hDC,0,0);
ReleaseDC(hdc);
m_picture.UpdateWindow();

CDC* hdc1 = m_picture1.GetDC();
m_Image.Draw(hdc1->m_hDC,0,0);
ReleaseDC(hdc1);

CDC* hdc2 = m_picture2.GetDC();
m_Image.Draw(hdc2->m_hDC,0,0);
ReleaseDC(hdc2);
}
}


void TestDlg::OnBnClickedStart()
{
CString csFile=_T("WaitToDo.png");
ShowExpression(true, csFile);


}
在调用这个函数后,最大化最小化后,图像全部消失
请问如何解决
...全文
112 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongya6088 2010-01-13
  • 打赏
  • 举报
回复
在OnPaint处理显示图片的逻辑
xiaoji 2010-01-13
  • 打赏
  • 举报
回复
把这一句放在OnPaint里面就行

if (m_Image has picture)
{
m_Image.Draw(dc.GetSafeHdc(), 0,0);
}
lovej_forever 2010-01-13
  • 打赏
  • 举报
回复
显示不同的图片的逻辑 你可以写一个函数来调用 这个函数就是了。总之最大化、最小化后。都需要进行重绘
weasea 2010-01-13
  • 打赏
  • 举报
回复
比较烦啊

这样的话。
显示不同的图片的逻辑也得在onpaint里决定是吗?
harry330 2010-01-13
  • 打赏
  • 举报
回复
if(bAll)
{
m_picture.Invalidate();
CDC* hdc = m_picture.GetDC();
m_Image.Draw(hdc->m_hDC,0,0);
ReleaseDC(hdc);
m_picture.UpdateWindow();

CDC* hdc1 = m_picture1.GetDC();
m_Image.Draw(hdc1->m_hDC,0,0);
ReleaseDC(hdc1);

CDC* hdc2 = m_picture2.GetDC();
m_Image.Draw(hdc2->m_hDC,0,0);
ReleaseDC(hdc2);
}

这部分放到OnPaint
harry330 2010-01-13
  • 打赏
  • 举报
回复
你显示不是在OnPaint中执行的,重绘的时候当然会消失。显示图像的部分放在OnPaint中即可。
weasea 2010-01-13
  • 打赏
  • 举报
回复
可以做点示例吗?
wltg2001 2010-01-13
  • 打赏
  • 举报
回复
在调用这个函数后,最大化最小化后,图像全部消失
请问如何解决
======
画图语句放在OnPaint中

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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