|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?. h* `* `7 C% |' ]0 w
解决方案:
* t; S. _" }4 S) m* @0 Q继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上
7 @; Q2 d* k9 U//绘制父窗口部分区域的内容, i. c( I0 D* N7 {
CRect rect;8 h Q) s7 [& e. ]' @0 s; w2 H- q
GetWindowRect(&rect);6 S4 S8 a9 a, m' m8 n# N5 V, r
GetParent()->ScreenToClient(&rect);3 d) d! h* T% h3 |+ I5 _
GetParent()->RedrawWindow(rect);6 }: S" E0 N& S% ], {& w
//输出本控件自己的文本内容
; Y5 F! P0 z) p$ {/ I& zdc.SetBkMode(TRANSPARENT);% P+ ]( s+ O7 j% O9 B
...
2 Z5 ~3 M6 k$ @1 \) ^还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。2 X: }5 c! `5 J$ W
以上是大概的思路。
' h _2 y6 y! o$ }* x; o1 I" {9 _ |
|