duilib : write text on richedit
2014-04-06 15:21
851 查看
below code from duiilib''s qqDemo
Effect:
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);
相关文章推荐
- EasyUI搭建前端框架
- ios-UITabBarControllerAndUINavigationController-用法
- easyUI Tabs 切换问题
- UICollectionView详解
- 关于EL表达式中requestScope和param区别
- 关于Assigning the return value of new by reference is deprecated的错误提示
- Confluence 管理未定义的页面
- Confluence 管理未定义的页面
- has been modified since the precompiled header was built IOS开发
- delegate模式——segue和delegate实现两个页面传值
- POJ 3080 Blue Jeans(KMP:最长连续公共子序列)
- Confluence 管理独立的页面
- Confluence 管理独立的页面
- spoj 375--Query On a Tree [树链剖分]
- **Leetcode_distinct-subsequences
- Metro UI 界面完全解析 (转载)
- ViewPager实现顶部菜单栏,仿最新易信UI,UI学习之路四
- apue和unp的学习之旅05——包裹函数
- POJ 2533 Longest Ordered Subsequence
- Longest Repeated Sequence