RT。是在WINCE系统下完成这个功能。我现在的做法是在ONCTLCOLOR中动态更改背景,这是可以做到的,但是当还需要在静态框中增加图标显示就不行了。我也尝试过在静态框中在放置一个小的静态框,将图标显示在小的静态框中,但是最终还是不行,小的静态框会被大的静态框覆盖。
请大家帮帮我啊,我现在急死了。

解决方案 »

  1.   

    CStatic::SetIcon() ??
    要不就重写CStatic类,在OnPaint函数中DrawIcon贴图
      

  2.   

    1楼的方法我试过了,重写CStatic类在OnPaint函数中DrawIcon贴图,但是贴了图后在ONCTLCOLOR中设置的背景颜色就没了。
      

  3.   

    所有的对CStatic控件的绘图操作都放到CStatic派生类的OnPaint函数中即可。
      

  4.   


    那在CStatic派生类的OnPaint函数中如何绘制控件背景色?难道是建立新的兼容DC,通过FillSolidRect填充整个控件?如果你是这个意思的话,这样在xp下没问题,我试过,但是在wince下不知道为什么就是不行的。
      

  5.   

    FillRect(hdc, &rect, (HBRUSH) (COLOR_ENDCOLORS+1));
    填充矩形
      

  6.   

    我找到办法了,用dc.TextOut函数就可以了,同时设置背景透明。