想改变控件的底色,试过static和listbox,用下述的方法可以实现改变背景色或者给背景贴图,但是,同样的方法在edit和combox却不起作用,现象就是似乎setbkmode(hdc,transparent)不起作用,文字的背景始终不透明,遮住了背景色或者背景图片。更奇怪的是从网上下载的例子在我这里运行也会出现同样状况,不知道是受什么因素影响呢。我用的例子是http://www.vckbase.com/document/viewdoc.asp?id=360,大家帮忙看看怎么回事吧
case WM_CTLCOLOREDIT:
      hdc=(HDC)wParam;
      SetBkMode(hdc, TRANSPARENT); //文字的背景透明
      HBRUSH hbr =CreateSolidBrush(RGB(255,2550,0));
      return hbr ;

解决方案 »

  1.   

    顺便说一下,我的系统是2000 server
      

  2.   

    我也见过同样的情况,当初我是派生edit重载OnPaint解决问题的。
    如果你要问为什么的话,我觉得的问Microsoft
      

  3.   

    现在是这么解决的:给edit设置ES_MULTILINE的style,设置TRANSPARENT就起作用了。但是新
    的问题出现了:系统不会自动刷新edit了,最后在WM_COMMAND中响应所有属于edit的消息,invalidaterect,通知系统重绘edit的区域,刷新实现了~,可是又感到闪烁~,但还可以忍受