各位大虾,在下遇到个问题如下:
请问俺如何才能改变某个Static控件中指定字符的颜色?
例如,俺创建了一个Static控件,Caption为“俺在CSDN获益匪浅!”,现在俺想把其中的"CSDN"置为红色,其他字符原样不变,俺该怎么做才行?不一定是Static控件,其他诸如EDIT、Button控件也可以。在下这里先行谢过!

解决方案 »

  1.   

    先GetWindowText
    然后SetTextColor
    再SetWindowText 试试
      

  2.   

    回楼上的几位大虾:
    SetTextColor()好像无法实现这个要求,因为一旦SetTextColor,该控件上的文字全都变成所设的颜色,而不能设置指定部分;至于重载自绘……能不能麻烦您稍微详细一点?谢谢了。
      

  3.   

    派生新类,在onpaint用textout等函数,再这些函数以前改字体的颜色,用CDC::SetTextColor 
      

  4.   

    响应消息 WM_CTLCOLOR
    OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
     if(nCtlColor == CTLCOLOR_STATIC)//CTLCOLOR_STATIC是Static控件的ID
    {
    pDC->SetTextColor(RGB(0,0,0));//改变字体颜色;
    pDC->SetBkColor(RGB(0,255,0));//改变字体背景颜色;
    HBRUSH hbrush=CreateSolidBrush(RGB(0,255,0));
    return hbrush;
    }
    }------
    其它依次类推..
    但button 的不行要么自绘,要么使用BitMap