本帖最后由 lovegame3 于 2012-11-01 14:13:49 编辑

解决方案 »

  1.   

    return CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
    这里替换成break试试
      

  2.   

    HBRUSH CFaceView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
        HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
        
    // 1. 测试直接返回 默认情况
    // 2. 测试仅运行第一部分 if()
        if(pWnd-> GetDlgCtrlID()   ==  IDC_text)
        {
            pDC->SetBkMode(TRANSPARENT);
            pDC-> SetTextColor(RGB(250,0,0)); 
            pDC->SelectObject(&m_font);
            HBRUSH B = CreateSolidBrush(RGB(255,255,255));
            return (HBRUSH) B;
        }    
    // 3. 测试仅运行第二部分 switch()
        switch(pWnd-> GetDlgCtrlID()) 
        {
                 case IDC_RADIO1:
                 case IDC_RADIO2:
                 case IDC_RADIO3:
                 case IDC_RADIO4:
                 case IDC_RADIO5:
                 case IDC_RADIO6:
                 case IDC_RADIO7:
                     {
                         pDC->SetBkMode(TRANSPARENT);
                         pDC->SetTextColor(RGB(100,20,0));
                         pWnd->SetFont(&m_font);
                         HBRUSH B = CreateSolidBrush(RGB(200,100,50));
                         return (HBRUSH) B;
                     }
                 default:
    // 4. 测试执行两次CFormView::OnCtlColor() 没问题
                     return CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
                     
             }        // TODO: Change any attributes of the DC here
        
        // TODO: Return a different brush if the default is not desired
        return hbr;
    }