富文本测试

#include <string>
using namespace std;
string UTF8ToGBK(const std::string& strUTF8)
{
int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0);
wchar_t * wszGBK = new wchar_t[len + 1]; memset(wszGBK, 0, sizeof(wchar_t) * (len + 1));
MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUTF8.c_str(), -1, (LPWSTR)wszGBK, len);

len = WideCharToMultiByte(CP_ACP, 0, (LPCWCH)wszGBK, -1, NULL, 0, NULL, NULL);
char *szGBK = new char[len + 1];
memset(szGBK, 0, len + 1);
WideCharToMultiByte(CP_ACP, 0, (LPCWCH)wszGBK, -1, szGBK, len, NULL, NULL); //strUTF8 = szGBK;
std::string strTemp(szGBK);
delete[]szGBK;
delete[]wszGBK;
return strTemp;
}

string GBKToUTF8(const std::string& strGBK)
{
string strOutUTF8 = "";
WCHAR * str1;
int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
str1 = new WCHAR[n];
MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n); n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
char * str2 = new char[n];
WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);
strOutUTF8 = str2;
delete[]str1;
str1 = NULL;
delete[]str2;
str2 = NULL;
return strOutUTF8;
}

xRichView::xRichView()
{
clear();
maxWidth = 0;

htmlTextElement& nodeTextOne = alloc_push_back<htmlTextElement>();
nodeTextOne.text = chUTF82W(GBKToUTF8("123对于m_indexCursorBegin = m_indexCursorEnd = getIndexCursorByMousePoint(contentPoint);int widthContent = width - paddingLeft - paddingRight;return paddingTop + resetCacheBox(*this, widthContent) + paddingBottom; \n文本搜索,如果搜索了除英文以外的语言还好").c_str());
nodeTextOne.m_counts = nodeTextOne.text.length();
m_countElment = nodeTextOne.m_counts;


htmlTextElement& nodeTextAtme = alloc_push_back<htmlTextElement>();
nodeTextAtme.text = chUTF82W(GBKToUTF8("@yecy").c_str());
nodeTextAtme.m_counts = nodeTextAtme.text.length();
m_countElment += nodeTextAtme.m_counts;

htmlImageElement& nodeTextImg = alloc_push_back<htmlImageElement>();
nodeTextImg.setImgPath("bz.png");
m_countElment += nodeTextImg.m_counts;

htmlTextElement& nodeTextTwo = alloc_push_back<htmlTextElement>();
nodeTextTwo.text = chUTF82W(GBKToUTF8("说些如果要搜索的内容是英文本").c_str());
nodeTextTwo.m_fontDescript.pixelSize = 16;
nodeTextTwo.m_fontDescript.color = xColor(0x00, 0xFF, 0xFF);
nodeTextTwo.m_fontDescript.under = true;
nodeTextTwo.m_counts = nodeTextTwo.text.length();
m_countElment += nodeTextTwo.m_counts;

htmlImageElement& nodeTextImg2 = alloc_push_back<htmlImageElement>();
nodeTextImg2.setImgPath(L"dt.png");
m_countElment += nodeTextImg2.m_counts;

htmlTextElement& nodeTextThree = alloc_push_back<htmlTextElement>();
nodeTextThree.m_fontDescript.pixelSize = 15;
nodeTextThree.text = chUTF82W(GBKToUTF8("那么就难以区分是标记还是本文了这样就绕回到对于文本搜索另外字母的大小写,被转义的字符,引号,尖括号").c_str());
nodeTextThree.m_counts = nodeTextThree.text.length();
m_countElment += nodeTextThree.m_counts;

m_bHideCursor = true;

m_indexCursorPressed = nodeTextOne.m_counts;
m_indexCursorRelease = nodeTextOne.m_counts;
}

转载于:https://www.cnblogs.com/hqu-ye/p/5942432.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值