mfc中使用gdiplus本来使用的挺好,今天继承CStatic得到子类myImage显示图片的时候发现画图的时候没反应,查看drawImage的返回值是11,表示ValueOverflow。
myImage *p = new myImage();//没问题
myImage p();//有问题
调试发现drawImage时目标位置
rcDest.X = m_padding;
rcDest.Y = m_padding;
rcDest.Width -= m_padding * 2;
rcDest.Height -= m_padding * 2;
graphics.DrawImage(m_pBkBitmap_2, rcDest, 0, 0,
m_pBkBitmap->GetWidth(), m_pBkBitmap->GetHeight(), UnitPixel);
m_padding的值没有初始化,程序也没有崩溃,只是不显示还以为其他逻辑导致控件不显示,仔细看看才发现时rcDest的x、y、width、heigth都是异常值,算一算发现宽高像素点超过整个电脑的内存。
注意:
成员变量一定要初始化