|
|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?* B/ Z0 d7 @. c3 f
解决方案:
5 W, f! {* L" b# J$ S o继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上
' ~" v- f' J3 ~+ o//绘制父窗口部分区域的内容* W. [/ _" [9 C- E/ W6 D' C0 h4 [
CRect rect;
0 j( M# d2 W; f2 y' y, ZGetWindowRect(&rect);# D3 s6 n9 Q& [$ p
GetParent()->ScreenToClient(&rect);6 @3 H( T( T% D C7 y, T9 l
GetParent()->RedrawWindow(rect);( r+ A& W9 Z/ e! h6 G8 s/ z% j
//输出本控件自己的文本内容
. C' q6 l/ ?% S& sdc.SetBkMode(TRANSPARENT);
2 _+ ~8 k2 \( l2 u3 i...
$ n7 C# w. E3 B8 b* d3 O4 `还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。# ^1 C. b" O) f) X' m$ O8 C- e
以上是大概的思路。
- E; n& r. o6 O1 n d; F |
|