CImage的一个问题
我想在对话框的OnEraseBkgnd函数中载入图片作为对话框的背景,代码如下:
每次擦除背景的时候都更换一张图片,现在的问题是如果只load一次的话没有问题,图片也能显示出来,然后一旦擦除了背景重绘的话就出错了,应该是m_imgBK不能load两次吧,所以我在上面又加了个判断,但是跟踪调试后发现m_imgBK.IsNull()根本没用,因为即使load后m_imgBK的句柄也是没有初始化的,所以调用两次Load才出错吧。不知道该怎么解决了!
BOOL CRussiaBlockDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
static int n = 0;
if (m_bkpFilename.size() != 0) //m_bkpFilename里面存放了图片的文件名
{
n = n % static_cast<int>(m_bkpFilename.size());
if (!m_imgBK.IsNull())
{
m_imgBK.Destroy();
}
m_imgBK.Load(m_bkpFilename[n]);
m_imgBK.Draw(pDC->GetSafeHdc(), 0, 0, m_rectClient.Width(), m_rectClient.Height());
++n;
return TRUE;
}
return CDialog::OnEraseBkgnd(pDC);
}
每次擦除背景的时候都更换一张图片,现在的问题是如果只load一次的话没有问题,图片也能显示出来,然后一旦擦除了背景重绘的话就出错了,应该是m_imgBK不能load两次吧,所以我在上面又加了个判断,但是跟踪调试后发现m_imgBK.IsNull()根本没用,因为即使load后m_imgBK的句柄也是没有初始化的,所以调用两次Load才出错吧。不知道该怎么解决了!
...全文
相关推荐
CImage编译不过
一个基于MFC的工程,CImage类编译不过
CImage for VC 经过修改的VC可以使用的CImage类
经过修改的CImage类 可以在VC里面使用 使用前先看看里面的TXT文本说明
CImage类(C++),图片处理,任意角度旋转
CImage类源代码(C++) 可以使用该类直接对图片处理,可以任意角度旋转
CImage类的使用
学习用MFC做数字图像处理入门的同学必看,该代码讲述了CImage类对图像处理的封装应用,它支持BMP,JPEG等图片的格式,使得图像处理得到了大大的简化。
vc6调用vs2010 CImage类.rar
出于工作要求,需要在VC6中使用SKinUi库,但是Skinui中CImage不能再VC中使用,故再vs2010中将CImage封成了dll供调用。有问题,可私信!九层之台,起于累土!


