|
|
发表于 2003-6-17 21:53:18
|
显示全部楼层
是 Static 控件吧?
7 }6 M- c7 @+ B$ C5 `, J解决方案:
e, ^" M0 I# p9 K4 I继承 CStatic 生成一个自己的类,如 CStaticEx 类,在其中的 OnPaint() (或相关事件)中加上* ^! `! L7 ~( {0 G6 B
//绘制父窗口部分区域的内容+ f) A. S4 q* u6 I1 w# b
CRect rect;
6 n" k& l0 G8 a% T, cGetWindowRect(&rect);$ K U# a, k. h' _- g
GetParent()->ScreenToClient(&rect);
8 y1 O& r6 V4 ?" FGetParent()->RedrawWindow(rect);
0 @- S0 i0 n% B9 C, V$ J) g//输出本控件自己的文本内容: I( q# s5 J: h$ F
dc.SetBkMode(TRANSPARENT);' H: h, [9 w5 w: l! p1 v
...' O* F) z% A- Y! e! U" g
还有 OnEraseBkgnd() 不调用默认的函数,直接 return TRUE,以防止重绘背景造成闪烁的感觉。2 E/ A* ^# v8 M h+ D2 w
以上是大概的思路。
; s6 m: ]# y: \: o. W3 S5 g |
|