|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?5 ~9 ]+ y# Z8 x1 @, t$ H/ S9 k0 ~: a
解决方案:
$ o u: i9 L, W; [" ]继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上
) b! {, ]; Z! J) i5 y9 b//绘制父窗口部分区域的内容
' l! E y9 v$ G( b* T3 CCRect rect;7 |+ ] u9 r' x3 P/ ^9 B
GetWindowRect(&rect);$ g) {+ e" m+ M Z& x7 r) \* ~9 l" I* a
GetParent()->ScreenToClient(&rect);
- ?9 D( [' M9 S4 A3 j% F; E# XGetParent()->RedrawWindow(rect);
3 A$ r7 Q7 |- F" V6 x//输出本控件自己的文本内容9 G% k) u/ E. v) Y
dc.SetBkMode(TRANSPARENT);: T ], |1 {2 J: i6 K# `; G- a3 q7 Z
...
. d0 k& k- t' ~$ D. _% P. s9 S u% l还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。
, E6 K. k) U2 ]1 I以上是大概的思路。
" d6 Z+ j; `( k6 n5 c |
|