duilib : write text on richedit

来源:互联网 发布:优化农业产业结构 编辑:程序博客网 时间:2024/06/06 16:48

below code from duiilib''s qqDemo


void CxxDlg::WriteContent(){    std::wstring    strMsg = L"";    CHARFORMAT2 cfTitle;    CHARFORMAT2 cfText;    ZeroMemory(&cfTitle, sizeof(CHARFORMAT));    cfTitle.cbSize = sizeof(CHARFORMAT);    cfTitle.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |CFM_SIZE;    cfTitle.dwEffects = 1;    cfTitle.yHeight = 16*16;//文字高度    cfTitle.crTextColor = RGB(128, 128, 128); //文字颜色    _tcscpy(cfTitle.szFaceName, L"微软雅黑");//设置字体    ZeroMemory(&cfText, sizeof(CHARFORMAT));    cfText.cbSize = sizeof(CHARFORMAT);    cfText.dwMask = CFM_COLOR | CFM_FACE |CFM_SIZE;    cfText.dwEffects = 1;    cfText.yHeight = 14*14;//文字高度    cfText.crTextColor = RGB(128, 128, 128); //文字颜色    _tcscpy(cfText.szFaceName, L"微软雅黑");//设置字体    m_pRichEdit->SetFocus();    m_pRichEdit->SetSelectionCharFormat(cfTitle);    strMsg = ns_base::StringFormatV(L"当前版本: %s\r\n", m_strVersionCur.c_str());    m_pRichEdit->SetSel(-1, -1);    m_pRichEdit->ReplaceSel(strMsg.c_str(), false);    m_pRichEdit->SetSelectionCharFormat(cfTitle);    strMsg = ns_base::StringFormatV(L"新版本: %s\r\n", m_strVersionNew.c_str());    m_pRichEdit->SetSel(-1, -1);    m_pRichEdit->ReplaceSel(strMsg.c_str(), false);    m_pRichEdit->SetSelectionCharFormat(cfTitle);    m_pRichEdit->SetSel(-1, -1);    m_pRichEdit->ReplaceSel(L"最后一次的升级内容:\r\n", false);    m_pRichEdit->SetSelectionCharFormat(cfText);    m_pRichEdit->SetSel(-1, -1);    m_pRichEdit->ReplaceSel(m_strContentUpdate.c_str(), false);    m_pRichEdit->EnableScrollBar(true, false);}

Effect:

    每次附加一段文字, 都必须要顺序执行 SetSelectionCharFormat, SetSel, ReplaceSel    即使要附加的文字格式都相同, 否则字体就变成了默认的格式.    m_pRichEdit->SetSelectionCharFormat(cfText);    m_pRichEdit->SetSel(-1, -1);    m_pRichEdit->ReplaceSel(m_strContentUpdate.c_str(), false);




0 0
原创粉丝点击