|
|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?7 O- z& q( E ?) i) P1 _
解决方案:$ z$ I9 N- P0 ]6 Y: ?
继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上; G- S2 j; v0 t9 J# e2 y$ b3 i
//绘制父窗口部分区域的内容
/ s3 h2 a( O" ~$ aCRect rect;1 A% `6 T7 S3 ^' ~
GetWindowRect(&rect);+ c& f3 F- V7 B0 ` O5 R
GetParent()->ScreenToClient(&rect);
' i. {$ [ h" B1 U& VGetParent()->RedrawWindow(rect);
( A1 o( m& @$ \% c$ J+ n: Q" H//输出本控件自己的文本内容2 `, q- T' s* z) T0 H; ~6 }
dc.SetBkMode(TRANSPARENT);+ S% @6 v! p" R6 q O, C, d Z9 f
...$ ]2 K0 o5 I0 q/ c3 h# B: k% j
还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。8 S" \5 X: X) K) y
以上是大概的思路。
4 x% L8 u% W( g6 V: X! f |
|