if(canvas1==NULL)
{
CRect rect;
this->GetClientRect(&rect);
canvas1=new Bitmap(rect.Width(),rect.Height());
}
    Graphics *g_canvas1=Graphics::FromImage(canvas1); 
    SolidBrush blue(Color(255,0,0,255));
    g_canvas1->Clear(Color(255,255,255,255)); //背景色刷新
    g_canvas1->FillRectangle(&blue,B1_x-40 ,B1_y-40 ,70,70);
    graph.DrawImage(canvas1,0,0);     delete g_canvas1;
}
if(moving)
{
if(canvas==NULL)//红色方块
{
CRect rect;
this->GetClientRect(&rect);
canvas=new Bitmap(rect.Width(),rect.Height());
}
Graphics *g_canvas=Graphics::FromImage(canvas); 
SolidBrush red(Color(255,255,0,0));
g_canvas->Clear(Color(255,255,255,255)); //背景色刷新
g_canvas->FillRectangle(&red,B_x-20 ,B_y-20 ,40,40);
graph.DrawImage(canvas,0,0);
delete g_canvas;
}
当以上两个同时都进行时,虽说是双缓冲,但在背景色刷新时还是会出现闪烁,不知道该怎么解决