|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?
8 H( k5 k8 ~3 j* q, j解决方案:/ w: Q' V9 ^0 W
继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上7 r% p" [( S: {/ V) n; J3 J
//绘制父窗口部分区域的内容
# \* L i; n, V, \& G7 N0 _CRect rect;
5 _4 y6 m- C X+ d* O" lGetWindowRect(&rect);0 Y( m" ]- f4 o" v- d2 N! L
GetParent()->ScreenToClient(&rect);
- i( J) I. R% f2 `GetParent()->RedrawWindow(rect);( v0 J) f: S3 o0 q7 ?6 A- y4 E
//输出本控件自己的文本内容% W/ b8 Y3 |: W' i5 k( v
dc.SetBkMode(TRANSPARENT);9 [' A4 r& K- g/ z O
...
8 ^4 ?$ e) c! c还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。$ e; f, g. g9 X
以上是大概的思路。
# ?: C. Z1 y: J& h- r |
|