有关SDK中绘图的一个有关问题

有关SDK中绘图的一个问题。
我在一个SDK工程里的OnTimer里响应了一个时钟事件,每次响应时执行一次绘图工作,其中包含以下代码:

...
HBRUSH brush;
...
brush=::CreateSolidBrush(RGB(255,255,255));  
FillRect(hdc,&rect,brush);                     //填充背景
...

结果在程序执行过程中发现,开始时程序一切正常,该语句以后的位图操作都能顺利执行,可是程序执行一定时间之后,屏幕就一直成白色了,只有在后面的位图操作里的TextOut(..)输出的字符串能够正常显示。

当我把上面的三行语句注释掉以后,改用BitBlt(....,BLACKNESS)填充背景时,程序才不会出现上述情况。请问这是什么原因?是因为反复创建对象造成的内存问题么??

------解决方案--------------------
如果你的HBRUSH brush;语句在函数体内,那你必须用完后DeleteObject(brush),因为资源泄漏了,长时间运行,资源耗尽,就会不正常
可改为改为ExtTextOut函数填充背景,就像CDC::FillSolidFill函数一样用它