|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?
& g& U) E) T1 F& {0 K2 ?! P* Z/ t解决方案:8 _: v2 b- s& P6 y1 a
继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上
7 i$ X: m" j5 a- C% F/ j! Q4 K//绘制父窗口部分区域的内容
5 V l7 h, r2 k. hCRect rect;
$ Q- [' c' z3 ]4 f. a' O$ h3 E" |GetWindowRect(&rect);, A8 a1 T% n$ ], z- c
GetParent()->ScreenToClient(&rect);9 f- _# ]' ^. w8 D4 l1 H- F7 g4 @8 l
GetParent()->RedrawWindow(rect);
0 d! D- \4 Q! v* L! U; A5 s//输出本控件自己的文本内容# z. d1 u' U3 Z- Q4 X# P) L4 D
dc.SetBkMode(TRANSPARENT);( S+ p+ I# e+ q5 Z; h3 C
...
7 v6 z+ S0 Y" t& z. J还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。
8 A: `- O& e; ^, ]: \: R/ z6 o以上是大概的思路。4 e+ T# q: t4 }( Z* G! y
|
|