2

我想要一个 CEdit 控件,背景绘制的一半长度或长度的任何其他部分。

我已经实现了以下代码

    HBRUSH CMyView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
        HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
    
        if (nCtlColor == CTLCOLOR_EDIT)
        {
    
            if (pWnd->GetDlgCtrlID() == IDC_MY_NORMAL_PERCENT_BOX)
            {
                // Set the text color to red
                pDC->SetTextColor(RGB(255, 0, 0));
    
                CRect rc;
                // Get the client area of the edit control
                m_CTV_Normal_Percent_Box_Ctrl.GetClientRect(&rc);
                m_CTV_Normal_Percent_Box_Ctrl.ScreenToClient(&rc);
                // Apply the device context to the client area of the edit control
                pDC->Rectangle(0, 0, rc.Width()/2, rc.Height());
    
                // Set the background mode for text to transparent 
                // so background will show thru.
                pDC->SetBkMode(TRANSPARENT);
    
                // Return handle to our CBrush object
                hbr = m_brush;
    
            }
        }

        return hbr;
    }

但这无法实现。任何人都可以提供帮助吗?

这就是我想要得到的

在此处输入图像描述

这就是我得到的

在此处输入图像描述

提前致谢。

4

0 回答 0