|
|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?' L0 t$ J& I5 W
解决方案:
9 @ F2 B9 h7 s2 P- [继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上) x% o" k1 J: i/ l
//绘制父窗口部分区域的内容
8 ^# U6 C) } ^CRect rect;
/ g: y/ M7 ]+ e) N% E4 j2 oGetWindowRect(&rect);& ^4 p7 O. `! f+ }4 `) v* h
GetParent()->ScreenToClient(&rect);$ B3 q9 i! q7 c8 M6 J9 @
GetParent()->RedrawWindow(rect);8 K1 E% [( P+ q4 M
//输出本控件自己的文本内容) a1 |' @4 p, R) M( B
dc.SetBkMode(TRANSPARENT);& V" m4 w- }2 y8 F, e& n% W
...
% z4 B) P4 I/ b: D, U6 r) G* T. F还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。+ D; o! s! M, g' P
以上是大概的思路。% i+ [6 n8 b3 b9 K; d2 v, v
|
|