duilib richedit添加文本提示
添加两个成员变量提示文字和提示文字颜色
DWORD m_dwPlaceholderTextColor;
CDuiString m_sPlaceholderText;
添加painttext函数
bool CRichEditUI::DoPaint(HDC hDC, const RECT& rcPaint, CControlUI* pStopControl)
{
RECT rcTemp = { 0 };
if( !::IntersectRect(&rcTemp, &rcPaint, &m_rcItem) ) return true;
CRenderClip clip;
CRenderClip::GenerateClip(hDC, rcTemp, clip);
CControlUI::DoPaint(hDC, rcPaint, pStopControl);
PaintText(hDC);
...
}
void CRichEditUI::PaintText(HDC hDC)
{
if( m_dwPlaceholderTextColor == 0 ) m_dwPlaceholderTextColor = m_pManager->GetDefaultFontColor();
RECT rc = m_rcItem;
rc.left += m_rcTextPadding.left;
rc.right -= m_rcTextPadding.right;
rc.top += m_rcTextPadding.top;
rc.bottom -= m_rcTextPadding.bottom;
rc.top += 3;
CDuiString str = GetText();
if(!str.IsEmpty() ) return;
if(m_sPlaceholderText.IsEmpty()) return;
CRenderEngine::DrawText(hDC, m_pManager, rc, m_sPlaceholderText, m_dwPlaceholderTextColor, m_iFont, DT_TOP);
}