看看这几行代码有什么问题?
程序功能是在运行中手工改变控件背景色
private:
COLORREF m_bkcolor; //控件背景色
COLORREF inrgb[16];
COLORREF outrgb[16];
HBRUSH m_bkbrush; //用于OnCtlColor中返回的刷子
HBRUSH m_inbrush[16];
HBRUSH m_outbrush[16];
void CGraphic::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class //创建刷子
m_bkbrush=CreateSolidBrush(m_bkcolor);
for(int i=0;i<16;i++)
{
m_inbrush[i]=CreateSolidBrush(inrgb[i]);
m_outbrush[i]=CreateSolidBrush(outrgb[i]);
}
}
//在手工改变颜色后,重新创建刷子
void CGraphic::createshowbrush()
{
delete[] m_bkbrush;
m_bkbrush=NULL;
m_bkbrush=CreateSolidBrush(m_bkcolor);
for(int i=0;i<16;i++)
{
delete[] m_inbrush[i]; //请问从这里开始是不有问题?
m_inbrush[i]=NULL; // 我在多拖动几次窗口后,程序就出错了
delete[] m_outbrush[i]; // 能否这样用 delete[] m_inbrush[i];
m_outbrush[i]=NULL; //
m_inbrush[i]=CreateSolidBrush(inrgb[i]); //
m_outbrush[i]=CreateSolidBrush(outrgb[i]); //
}
}
void CGraphic::OnDraw(CDC* pDC)
{
createshowbrush();
}
HBRUSH CGraphic::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
........
}