亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? text.c

?? miniucgui1.30版本的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
        *nChar += wordLen;        if (nCount == 0)            break;        if (*pText == '\t') {            tabs ++;            if (uFormat & DT_EXPANDTABS) {                lineWidth += nTabWidth;                gdi_start_new_line (pdc->pLogFont);            }            else                lineWidth += gdi_width_one_char                         (pdc->pLogFont, pdc->pLogFont->sbc_devfont, pText, 1, &x, &y);            pText ++;            nCount --;        }        else if (*pText == '\n' || *pText == '\r') {            (*nChar) ++;            break;        }        else if (*pText == ' ') {            lineWidth += gdi_width_one_char                        (pdc->pLogFont, pdc->pLogFont->sbc_devfont, pText, 1, &x, &y);            (*nChar) ++;            pText ++;            nCount --;        }    }        if (!(uFormat & DT_EXPANDTABS)) {        *nChar += tabs;        tabs = 0;    }    return tabs;}int DrawTextEx (HDC hdc, const char* pText, int nCount,                 RECT* pRect, int indent, UINT nFormat){    PDC pdc;    int n, nLines = 0, width = 0;    BOOL bOutput = TRUE;    int x, y;    RECT rcDraw, rcOutput;    int nTabWidth, tabs;     SIZE size;    int line_height;    pdc = dc_HDC2PDC(hdc);    if (nCount == -1)        nCount = strlen (pText);    line_height = pdc->pLogFont->size + pdc->alExtra + pdc->blExtra;    if (nFormat & DT_TABSTOP)        nTabWidth = HIWORD (nFormat) *                     (*pdc->pLogFont->sbc_devfont->font_ops->get_ave_width)                    (pdc->pLogFont, pdc->pLogFont->sbc_devfont);    else        nTabWidth = pdc->tabstop *                     (*pdc->pLogFont->sbc_devfont->font_ops->get_ave_width)                    (pdc->pLogFont, pdc->pLogFont->sbc_devfont);    // Transfer logical to device to screen here.    rcDraw = *pRect;    coor_LP2SP(pdc, &rcDraw.left, &rcDraw.top);    coor_LP2SP(pdc, &rcDraw.right, &rcDraw.bottom);    NormalizeRect (&rcDraw);    if (dc_IsGeneralDC (pdc)) {        LOCK (&pdc->pGCRInfo->lock);        if (!dc_GenerateECRgn (pdc, FALSE))            bOutput = FALSE;    }#ifdef _LITE_VERSION    if (CHECK_DRAWING (pdc)) bOutput = FALSE;#endif    // Draw text here.    if (nFormat & DT_CALCRECT)        bOutput = FALSE;    y = rcDraw.top;    if (nFormat & DT_SINGLELINE) {        if (nFormat & DT_BOTTOM)            y = rcDraw.bottom - pdc->pLogFont->size;        else if (nFormat & DT_VCENTER)            y = rcDraw.top + ((RECTH (rcDraw) - pdc->pLogFont->size) >> 1);    }    while (nCount != 0) {        int nOutput;        int maxwidth;        if (nLines == 0) {            maxwidth = rcDraw.right - rcDraw.left - indent;            if (maxwidth <= 0) {                // new line                y += pdc->pLogFont->size;                nLines ++;                continue;            }        }        else            maxwidth = rcDraw.right - rcDraw.left;                gdi_start_new_line (pdc->pLogFont);        tabs = txtGetOneLine (pdc, pText, nCount, nTabWidth, maxwidth, nFormat, &n);        gdi_get_TextOut_extent (pdc, pdc->pLogFont, pText, n, &size);        width = size.cx + tabs * nTabWidth;        n += tabs;        if ( (pText[n-1] == '\n' || pText[n-1] == '\r')              && !(nFormat & DT_SINGLELINE) ) {            int tmpx = 0, tmpy = 0;            nOutput = n - 1;            width -= gdi_width_one_char (pdc->pLogFont, pdc->pLogFont->sbc_devfont,                             pText + n - 1, 1, &tmpx, &tmpy);        }        else            nOutput = n;                    if (nFormat & DT_RIGHT)            x = rcDraw.right - width;        else if (nFormat & DT_CENTER)            x = rcDraw.left + ((RECTW (rcDraw) - width) >> 1);        else            x = rcDraw.left;        x += (nLines ? 0 : indent);        rcOutput.left   = x;        rcOutput.top    = y;        rcOutput.right  = rcOutput.left + width;        rcOutput.bottom = rcOutput.top + line_height;        if (nFormat & DT_CALCRECT) {            if (nLines == 0)                *pRect = rcOutput;            else                GetBoundRect (pRect, pRect, &rcOutput);        }        // draw one line        if (bOutput && width > 0) {            if (nFormat & DT_NOCLIP)                txtDrawOneLine (pdc, pText, nOutput, x, y,                         &rcOutput, nFormat, nTabWidth);            else {                RECT rcClip;                IntersectRect (&rcClip, &rcOutput, &rcDraw);                txtDrawOneLine (pdc, pText, nOutput, x, y,                         &rcClip, nFormat, nTabWidth);            }        }        pText += n;        // new line        y += line_height;        nLines ++;        // left characters        nCount = nCount - n;    }    /* we are done, so release global clipping region */    UNLOCK_GCRINFO (pdc);    if (nFormat & DT_CALCRECT) {        coor_SP2LP (pdc, &pRect->left, &pRect->top);        coor_SP2LP (pdc, &pRect->right, &pRect->bottom);    }    if (!(nFormat & DT_CALCRECT)) {        // update text out position        x += width;        y -= line_height;        coor_SP2LP (pdc, &x, &y);        pdc->CurTextPos.x = x;        pdc->CurTextPos.y = y;    }    return line_height * nLines;}/************************* Text parse support ********************************/int GUIAPI GetTextMCharInfo (PLOGFONT log_font, const char* mstr, int len,                 int* pos_chars){    DEVFONT* sbc_devfont = log_font->sbc_devfont;    DEVFONT* mbc_devfont = log_font->mbc_devfont;    int count = 0;    int left_bytes = len;    int len_cur_char;    while (left_bytes) {        if (pos_chars)            pos_chars [count] = len - left_bytes;        if (mbc_devfont) {            len_cur_char = (*mbc_devfont->charset_ops->len_first_char) (mstr, left_bytes);            if (len_cur_char != 0) {                count ++;                left_bytes -= len_cur_char;                mstr += len_cur_char;                continue;            }        }        len_cur_char = (*sbc_devfont->charset_ops->len_first_char) (mstr, left_bytes);        if (len_cur_char != 0) {            count ++;            left_bytes -= len_cur_char;            mstr += len_cur_char;        }    }    return count;}int GUIAPI GetTextWordInfo (PLOGFONT log_font, const char* mstr, int len,                 int* pos_words, WORDINFO* info_words){    DEVFONT* sbc_devfont = log_font->sbc_devfont;    DEVFONT* mbc_devfont = log_font->mbc_devfont;    WORDINFO word_info;     int count = 0;    int left_bytes = len;    int mbc_sub_len, sbc_sub_len, word_len;    while (left_bytes) {        sbc_sub_len = left_bytes;        if (mbc_devfont) {            int mbc_pos;            mbc_pos = (*mbc_devfont->charset_ops->pos_first_char) (mstr, left_bytes);            if (mbc_pos == 0) {                mbc_sub_len = (*mbc_devfont->charset_ops->len_first_substr) (mstr, left_bytes);                while (mbc_sub_len) {                    (*mbc_devfont->charset_ops->get_next_word) (mstr, mbc_sub_len, &word_info);                    if (pos_words)                        pos_words [count] = len - left_bytes;                    if (info_words)                        memcpy (info_words + count, &word_info, sizeof (WORDINFO));                    count ++;                    word_len = word_info.len + word_info.nr_delimiters;                    mbc_sub_len -= word_len;                    left_bytes -= word_len;                    mstr += word_len;                }                continue;            }            else if (mbc_pos > 0)                sbc_sub_len = mbc_pos;        }        while (sbc_sub_len) {            (*sbc_devfont->charset_ops->get_next_word) (mstr, sbc_sub_len, &word_info);            if (pos_words)                pos_words [count] = len - left_bytes;            if (info_words)                memcpy (info_words + count, &word_info, sizeof (WORDINFO));            count ++;            word_len = word_info.len + word_info.nr_delimiters;            sbc_sub_len -= word_len;            left_bytes -= word_len;            mstr += word_len;        }    }    return count;}int GUIAPI GetFirstMCharLen (PLOGFONT log_font, const char* mstr, int len){    DEVFONT* sbc_devfont = log_font->sbc_devfont;    DEVFONT* mbc_devfont = log_font->mbc_devfont;    int len_cur_char = 0;    if (mbc_devfont) {        len_cur_char = (*mbc_devfont->charset_ops->len_first_char) (mstr, len);        if (len_cur_char != 0)            return len_cur_char;    }    len_cur_char = (*sbc_devfont->charset_ops->len_first_char) (mstr, len);    if (len_cur_char != 0)        return len_cur_char;    return len_cur_char;}int GUIAPI GetFirstWord (PLOGFONT log_font, const char* mstr, int len,                    WORDINFO* word_info){    DEVFONT* sbc_devfont = log_font->sbc_devfont;    DEVFONT* mbc_devfont = log_font->mbc_devfont;    if (mbc_devfont) {        int mbc_pos;        mbc_pos = (*mbc_devfont->charset_ops->pos_first_char) (mstr, len);        if (mbc_pos == 0) {            len = (*mbc_devfont->charset_ops->len_first_substr) (mstr, len);            (*mbc_devfont->charset_ops->get_next_word) (mstr, len, word_info);            return word_info->len + word_info->nr_delimiters;        }        else if (mbc_pos > 0)            len = mbc_pos;    }    (*sbc_devfont->charset_ops->get_next_word) (mstr, len, word_info);    return word_info->len + word_info->nr_delimiters;}int GUIAPI GetTextExtentPoint (HDC hdc, const char* text, int len, int max_extent,                 int* fit_chars, int* pos_chars, int* dx_chars, SIZE* size){    PDC pdc = dc_HDC2PDC (hdc);    LOGFONT* log_font = pdc->pLogFont;    DEVFONT* sbc_devfont = log_font->sbc_devfont;    DEVFONT* mbc_devfont = log_font->mbc_devfont;    int len_cur_char, width_cur_char;    int left_bytes = len;    int char_count = 0;    int x = 0, y = 0;    gdi_start_new_line (log_font);    size->cy = log_font->size + pdc->alExtra + pdc->blExtra;    size->cx = 0;    while (left_bytes) {        if (pos_chars)            pos_chars [char_count] = len - left_bytes;        if (dx_chars)            dx_chars [char_count] = size->cx;        if (mbc_devfont &&                 (len_cur_char = (*mbc_devfont->charset_ops->len_first_char)                     (text, left_bytes))) {            width_cur_char = gdi_width_one_char (log_font, mbc_devfont,                    text, len_cur_char, &x, &y);        }        else {            if ((len_cur_char = (*sbc_devfont->charset_ops->len_first_char)                    (text, left_bytes))) {                width_cur_char = gdi_width_one_char (log_font, sbc_devfont,                    text, len_cur_char, &x, &y);            }            else                break;        }        width_cur_char += pdc->cExtra;        if (max_extent > 0 && (size->cx + width_cur_char) > max_extent) {            goto ret;        }        char_count ++;        size->cx += width_cur_char;        left_bytes -= len_cur_char;        text += len_cur_char;    }ret:    if (fit_chars) *fit_chars = char_count;    return len - left_bytes;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级搡bbbb搡bbbb| 日本成人在线不卡视频| 5566中文字幕一区二区电影| 亚洲国产精品久久人人爱| 久久久久久久电影| 在线观看视频一区二区| 一区二区三区日韩在线观看| 色综合久久中文综合久久97| 久久成人免费日本黄色| 亚洲精品久久久久久国产精华液| 久久综合丝袜日本网| 欧美人动与zoxxxx乱| av资源站一区| 国产福利91精品| 蜜臂av日日欢夜夜爽一区| 亚洲国产精品久久人人爱| 18成人在线观看| 国产日韩欧美不卡| 欧美国产精品劲爆| 久久精品一二三| 亚洲黄色小视频| 亚洲综合清纯丝袜自拍| 日韩精品福利网| 日本韩国欧美一区二区三区| 久久九九99视频| 日本色综合中文字幕| 欧美视频日韩视频在线观看| 久久久不卡网国产精品一区| 亚洲成人激情自拍| 成人手机电影网| 日韩一区二区三区高清免费看看| 国产精品女主播av| 欧美一区二区三区在线看| 99这里只有久久精品视频| 国产馆精品极品| 国产**成人网毛片九色 | 成人午夜视频在线| av电影天堂一区二区在线观看| 成人午夜电影久久影院| 成人丝袜18视频在线观看| 99精品视频一区| 91精品国产综合久久久久久漫画| 精品999在线播放| 中文字幕亚洲一区二区va在线| 亚洲精品福利视频网站| 日韩国产高清在线| 国产高清成人在线| 欧美喷潮久久久xxxxx| 欧美韩国日本不卡| 青草国产精品久久久久久| 成人av资源在线观看| 91精品久久久久久久久99蜜臂| 久久精品一区二区三区不卡牛牛| 亚洲一级二级在线| 中文字幕乱码日本亚洲一区二区 | 日韩美女视频一区| 国内精品嫩模私拍在线| 欧美三级电影网| 国产精品国产三级国产aⅴ中文| 天天色天天操综合| 一本大道久久a久久精二百| 国产精品热久久久久夜色精品三区| 国产一区二区三区最好精华液 | 日本va欧美va精品发布| 亚洲精品免费电影| a美女胸又www黄视频久久| 99re66热这里只有精品3直播 | 欧美一区二区视频免费观看| 欧美放荡的少妇| 91美女视频网站| 精品国产伦理网| 久久se精品一区精品二区| 欧美日韩久久久久久| 玉足女爽爽91| 色成人在线视频| 亚洲国产日韩精品| 欧美三级韩国三级日本一级| 亚洲最新视频在线播放| 一本大道av伊人久久综合| 久久久噜噜噜久久中文字幕色伊伊 | 中文字幕免费不卡在线| 国产精品资源站在线| 国产精品午夜电影| 97se亚洲国产综合自在线观| 日本一区二区三区免费乱视频 | 美日韩黄色大片| 久久先锋资源网| 成人91在线观看| 亚洲国产一区二区三区 | 久久你懂得1024| 成人午夜在线播放| 一区二区三区欧美日韩| 日韩午夜精品视频| 成人高清在线视频| 九九视频精品免费| 精品剧情在线观看| 久草精品在线观看| 精品国产一区二区三区久久久蜜月 | 亚洲国产高清在线| 欧美日本一区二区三区四区| 国产精品综合在线视频| 一区二区三区不卡视频| 久久人人超碰精品| 日本久久精品电影| 国产成a人亚洲精品| 偷窥国产亚洲免费视频| 亚洲乱码精品一二三四区日韩在线| 精品国精品国产| 三级久久三级久久久| 欧美一级欧美一级在线播放| 午夜一区二区三区视频| 国产精品网站在线观看| 在线播放一区二区三区| www.激情成人| 国产精品亚洲第一区在线暖暖韩国 | 精品国产露脸精彩对白| 99精品在线观看视频| 国产乱子伦一区二区三区国色天香| 亚洲成av人影院| 成人免费在线视频观看| 国产亚洲婷婷免费| 日韩午夜精品视频| 日韩免费高清视频| 欧洲日韩一区二区三区| 色偷偷88欧美精品久久久| 99国产欧美另类久久久精品| 懂色中文一区二区在线播放| 国产精品一区二区你懂的| 国产成人一级电影| 成人午夜私人影院| 99精品偷自拍| 欧美日韩亚洲国产综合| 欧美日韩国产综合一区二区 | 成人国产电影网| 一本久道中文字幕精品亚洲嫩| 91在线一区二区三区| 欧美亚洲丝袜传媒另类| 91麻豆精品国产自产在线| 亚洲精品一区二区三区四区高清| 日韩欧美高清一区| 国产精品高潮呻吟久久| 亚洲丝袜精品丝袜在线| 亚洲va韩国va欧美va精品| 美腿丝袜亚洲色图| 91在线精品一区二区三区| 欧美三级电影网| 久久久久久99久久久精品网站| 国产精品国产三级国产| 午夜精品一区二区三区电影天堂 | 日韩一区二区高清| 国产欧美精品在线观看| 亚洲美女偷拍久久| 老司机午夜精品| 91久久线看在观草草青青| 久久视频一区二区| 亚洲一区二区三区视频在线播放 | 日韩久久一区二区| 狠狠色狠狠色综合| 欧美日韩一级视频| 亚洲欧洲精品一区二区精品久久久 | 91精品久久久久久久久99蜜臂| 国产精品色婷婷| 精品中文字幕一区二区小辣椒| 91网址在线看| 国产精品视频第一区| 免费在线视频一区| 欧美日韩国产一级| 性做久久久久久| 色一情一伦一子一伦一区| 欧美国产欧美综合| 久久爱另类一区二区小说| 欧美精品免费视频| 午夜免费欧美电影| 日韩欧美一级二级三级| 毛片av中文字幕一区二区| 日韩avvvv在线播放| 91精品福利在线| 一区二区在线观看av| 91九色02白丝porn| 亚洲一级二级在线| 欧美丰满美乳xxx高潮www| 国产综合一区二区| 日韩亚洲欧美成人一区| 亚洲免费av在线| 国产一区二三区| 91精品久久久久久久99蜜桃| 国产精品美女久久久久久久| 日韩av不卡在线观看| 欧美一区二区精品在线| 欧美日韩国产不卡| 午夜a成v人精品| 精品奇米国产一区二区三区| 国产一区二区毛片| 国产精品电影一区二区三区| 91高清在线观看| 欧美a一区二区| 亚洲精品第一国产综合野| 在线精品观看国产| 国产精品久久福利| 欧美伦理影视网|