在STATIC上画图,闪一下就没了,该怎么处理

在STATIC上画图,闪一下就没了
我想在STATIC上绘图并设置背景颜色,但是打开的是,闪一下就没有了。
代码如下:
声明:             CDC *_pDC; //表示控件窗口的设备描述表.DC 
OnInitDialog赋值:
                   _pDC =GetDlgItem(IDC_STATIC_TABLE)->GetDC(); 
                 _pDC->SelectObject(brush_alram); 
OnPaint绘图:绘制一个正方形
                  _pDC->MoveTo(0,0);
_pDC->LineTo(0,100);
_pDC->LineTo(100,100);
_pDC->LineTo(100,0);
_pDC->LineTo(0,0);

CDialog::OnPaint();

------解决方案--------------------
我的做法很简单。继承CStatic,在它的OnPaint中画,这样就不会被擦除了。
用Subclass或者DDX关联你的类和ID。
------解决方案--------------------
画图的部分写在OnPaint函数中。
------解决方案--------------------
不要作为局部对象,应该定义在类里面作为它的数据成员试试!
------解决方案--------------------
屏幕上各种图形都是临时放置的,只要被新的图形覆盖就会消失,所以每个窗口的刷新显示和改变实际上都在不停的重绘屏幕上的图形
用按钮画出的图形,因为此时窗口已经稳定,不需要频繁重绘,所以可以保留,但只要你用其他窗口覆盖掉图形的一部分,再把那个窗口移开,此时图形所在的窗口就会自动重绘窗口——而你画出的图形就没戏了

所以,要在窗口上绘制图形,或者显示图片(本质上也就是个复杂图形),一般有两种方法
第一,不停绘制,例如实时采集图像,采集一张绘制一张,窗口重绘比不上你画的频繁,你画的图形就停留在屏幕上了
第二,在窗口重绘时顺便重绘你的图形,例如对话框,就要在OnPaint()函数中添加绘制代码,这样每次窗口重绘的时候,都会顺便把你的图形绘制出来