• 富文本测试


    #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;
    }

  • 相关阅读:
    DOM 高级编程笔记
    什么是目标管理?什么叫smart原则?
    HTML文档中小meta的大作用
    《javascript权威指南》基础笔记 重要
    应聘时最漂亮的回答 转
    JS在IE和Firefox之间的区别
    apply与call的用法及区别
    谈谈Ajax跨域
    《高性能网站建设指南》、《高性能网站建设进阶指南》笔记
    HTTP协议状态码详解(HTTP Status Code)
  • 原文地址:https://www.cnblogs.com/hqu-ye/p/5942432.html
Copyright © 2020-2023  润新知