|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?" y' i0 G# I h x& Z- I
解决方案:; w7 m3 o G+ P, |, z- t* R* ]# i
继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上) [) O4 H* ^; F; J
//绘制父窗口部分区域的内容& N" Y( p B& z: x3 R+ u
CRect rect;
% U( N4 I( n. y2 |/ WGetWindowRect(&rect);2 H0 D0 N3 C: D7 r' g- Y
GetParent()->ScreenToClient(&rect);: x) A' b8 A" B( ]0 h3 J
GetParent()->RedrawWindow(rect);
6 m4 d; f- M9 G8 R- E//输出本控件自己的文本内容
& R( W) l! u) ndc.SetBkMode(TRANSPARENT);8 H& p3 t% q' P& }
...
( A8 U+ {5 L% X) D9 ~- {& u. ~还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。
$ Z) Z8 L: _0 H; ^以上是大概的思路。
% ]+ G! Y3 h1 n |
|