|
|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?
. I% T7 y, [7 h- L解决方案:. b& b+ a1 M0 g7 |
继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上
! T% X, M( r& S//绘制父窗口部分区域的内容 E- X% s8 a% w& Y7 s9 \) p
CRect rect;
/ k N0 I! n F9 Q- y: @2 M: k8 tGetWindowRect(&rect);
- E9 V; @7 m9 A& L1 oGetParent()->ScreenToClient(&rect);! D( z- c1 r3 U0 W" b/ F# a- F& r
GetParent()->RedrawWindow(rect);
/ ^5 s: x4 Z$ k3 I//输出本控件自己的文本内容
$ g$ z: L% O! Z% S( z+ Xdc.SetBkMode(TRANSPARENT);
' E4 n( r8 R) ^2 T9 a...9 r' P5 A3 M+ H! G2 y+ B" X
还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。- G d- ^9 X$ A7 V
以上是大概的思路。
& m& Z5 N# |* T, ~$ A; ~( |: E% V- v |
|