|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?
1 D _9 S& a' r2 i* D n解决方案:# q& h. b# u. Z8 d
继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上1 U( ?7 U4 g- I; g" \; ?+ D
//绘制父窗口部分区域的内容
4 T, e* U! q& [' B. ]CRect rect;3 \0 h @; s( b3 L" q- I6 Z: u* w! [
GetWindowRect(&rect);
r, {% p* R3 w0 S1 [* G' B) I# AGetParent()->ScreenToClient(&rect);
. H8 Q3 u# q' n u. q8 }5 W) }GetParent()->RedrawWindow(rect);
1 N+ Y/ Q- m) l+ Y//输出本控件自己的文本内容
2 B( Y! V( s0 H' L* I" T Ddc.SetBkMode(TRANSPARENT);
6 X" U9 q O" I* b...% b7 J$ F, X1 v) z
还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。
# @! `' K# R) g- r3 Z* I7 L6 _以上是大概的思路。5 ^0 _) u5 W: g1 w: d
|
|