#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;
文本搜索,如果搜索了除英文以外的语言还好").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;
}