我继承CStatic自己定义了个控件 模拟VS2008开始带的syslink,因为这个控件我找不到办法控制它的文本颜色。
   问题是这样的,我在对话框上需要多个超链接static,就用到我自己定义的类,其中一个一开始是隐藏的,在操作过程中会显示出来,刚显示出来时字体没变可最小化程序再还原链接字体就变了 如下
   在自定义类中设置超链接字体代码
   
        LOGFONT tempFnt;
        memset(&tempFnt,0,sizeof(LOGFONT)); 
        lstrcpy(tempFnt.lfFaceName,(LPSTR)"宋体_GB2312");
        tempFnt.lfHeight =12;
        tempFnt.lfWeight=300; 
        tempFnt.lfWidth=8; 
        tempFnt.lfEscapement = 0; 
        tempFnt.lfUnderline = TRUE; 
        tempFnt.lfStrikeOut = FALSE;
        tempFnt.lfClipPrecision = CLIP_LH_ANGLES; 
        tempFnt.lfPitchAndFamily = FF_SWISS;
        tempFnt.lfCharSet = GB2312_CHARSET;
        CFont font;
        font.CreateFontIndirect( &tempFnt );
        //带下划线字体
        CFont* pOldFont = pDC->SelectObject(&font);
   
   我的解决过程如下,主窗口类CTuanGouDlg的OnCtlColor A函数调用了CDialog类的OnCtlColor B函数
   1.如果不调用B不会有下划线没这个问题,问题就在自定义类中
   2.调用B不设置字体也没事(废话)
   3.在LOGFONT的成员设置过程中档我注释掉lfwidth时就没这个问题了,同样的代码刚显示窗口时为什么是正常的,而一个static从隐藏到显示后为什么变了呢?