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

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

?? text.c

?? 這是針對 Linux (i386)平臺的 minigui 3.6.2 開發包(MiniGUI-Processes 運行模式)。
?? C
?? 第 1 頁 / 共 2 頁
字號:
}int DrawTextEx2 (HDC hdc, const char* pText, int nCount,                 RECT* pRect, int indent, UINT nFormat, DTFIRSTLINE *firstline){    PDC pdc;    int n, nLines = 0, width = 0;    BOOL bOutput = TRUE;    int x, y;    RECT rcDraw, rcOutput;    int nTabWidth;     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);    LOCK_ECRGN(bOutput = FALSE);    LOCK_GDI();    // set graphics context.    GAL_SetGC (pdc->gc);    // Draw text here.    if ((nFormat & DT_CALCRECT) || firstline)        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);    }    memset (&rcOutput, 0, sizeof(RECT));    while (nCount != 0) {        int nOutput;        int line_x, maxwidth;        if (nLines == 0) {            line_x = indent;            maxwidth = rcDraw.right - rcDraw.left - indent;            if (maxwidth <= 0) {                /* new line */                y += line_height;                nLines ++;                continue;            }        }        else {            line_x = 0;            maxwidth = rcDraw.right - rcDraw.left;        }                gdi_start_new_line (pdc->pLogFont);        width = txtGetOneLine (pdc, pText, nCount, nTabWidth, maxwidth, nFormat, &n);        nOutput = n;        if ( (pText[n-1] == '\n' || pText[n-1] == '\r') && (nFormat & DT_SINGLELINE) ) {            int tmpx = 0, tmpy = 0;            //FIXME            nOutput = n - 1;            width += gdi_width_one_char (pdc->pLogFont, pdc->pLogFont->sbc_devfont,                             pText + n - 1, 1, &tmpx, &tmpy);        }        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 += line_x;        if (firstline) {            firstline->nr_chars = nOutput;            firstline->startx = x;            firstline->starty = y;            firstline->width = width;            firstline->height = line_height;            break;        }        rcOutput.left   = x;        rcOutput.top    = y;        rcOutput.right  = rcOutput.left + width;        rcOutput.bottom = rcOutput.top + line_height;        NormalizeRect(&rcOutput);        if (nFormat & DT_CALCRECT) {            if (nLines == 0)                *pRect = rcOutput;            else                GetBoundRect (pRect, pRect, &rcOutput);        }        // draw one line        if (bOutput && width > 0) {            if (!dc_IsMemHDC(hdc)) ShowCursorForGDI(FALSE, &rcOutput);            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);            }            if (!dc_IsMemHDC(hdc)) ShowCursorForGDI (TRUE, &rcOutput);        }        pText += n;        // new line        y += line_height;        nLines ++;        // left characters        nCount = nCount - n;    }    UNLOCK_GDI();    UNLOCK_ECRGN();    if (firstline) {        coor_SP2LP (pdc, &firstline->startx, &firstline->starty);        return 0;    }    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 > 0) {        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 > 0) {        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 GetLastMCharLen (PLOGFONT log_font, const char* mstr, int len){    DEVFONT* sbc_devfont = log_font->sbc_devfont;    DEVFONT* mbc_devfont = log_font->mbc_devfont;    int left_bytes = len;    int len_cur_char;    int lastlen = 0;    while (left_bytes > 0) {        if (mbc_devfont) {            len_cur_char = (*mbc_devfont->charset_ops->len_first_char) (mstr, left_bytes);            if (len_cur_char != 0) {                left_bytes -= len_cur_char;                mstr += len_cur_char;                lastlen = len_cur_char;                continue;            }        }        len_cur_char = (*sbc_devfont->charset_ops->len_first_char) (mstr, left_bytes);        if (len_cur_char != 0) {            left_bytes -= len_cur_char;            mstr += len_cur_char;            lastlen = len_cur_char;        }    }    return lastlen;}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 > 0) {        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;}int GUIAPI GetTabbedTextExtentPoint (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 left_bytes = len;    int len_cur_char;    int tab_width, line_height;    int last_line_width = 0;    int char_count = 0;    int x = 0, y = 0;    gdi_start_new_line (log_font);    size->cx = 0;    size->cy = 0;    tab_width = (*sbc_devfont->font_ops->get_ave_width) (log_font, sbc_devfont)                    * pdc->tabstop;    line_height = log_font->size + pdc->alExtra + pdc->blExtra;    while (left_bytes > 0) {        if (pos_chars)            pos_chars [char_count] = len - left_bytes;        if (dx_chars)            dx_chars [char_count] = last_line_width;        if (mbc_devfont &&                 (len_cur_char = (*mbc_devfont->charset_ops->len_first_char)                     (text, left_bytes))) {            last_line_width += gdi_width_one_char (log_font, mbc_devfont,                     text, len_cur_char, &x, &y);            last_line_width += pdc->cExtra;        }        else {            len_cur_char = (*sbc_devfont->charset_ops->len_first_char) (text, left_bytes);            if (len_cur_char == 0)                break;            switch (*text) {            case '\n':                size->cy += line_height;            case '\r':                if (last_line_width > size->cx)                    size->cx = last_line_width;                last_line_width = 0;                gdi_start_new_line (log_font);            break;            case '\t':                last_line_width += tab_width;                gdi_start_new_line (log_font);            break;            default:                last_line_width += gdi_width_one_char (log_font, sbc_devfont,                         text, len_cur_char, &x, &y);                last_line_width += pdc->cExtra;            }        }        if (max_extent > 0 && last_line_width > max_extent) {            goto ret;        }        if (last_line_width > size->cx)            size->cx = last_line_width;        char_count ++;        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一区二区三区免费野_久草精品视频
91精品国产高清一区二区三区| 欧美日本一区二区三区四区| 一区二区三区av电影| 欧美一区二区精品久久911| 99这里只有久久精品视频| 日韩激情一二三区| 亚洲激情av在线| 国产日韩欧美综合在线| 51精品视频一区二区三区| 一本大道av一区二区在线播放| 国内精品免费**视频| 青娱乐精品视频在线| 亚洲一区二区中文在线| 中文字幕一区二区三区蜜月| 26uuu精品一区二区| 欧美日本在线视频| 91国产丝袜在线播放| 99精品欧美一区| 成人免费高清在线| 激情另类小说区图片区视频区| 亚瑟在线精品视频| 亚洲综合在线五月| 亚洲三级小视频| 国产精品视频yy9299一区| 欧美成人精品福利| 日韩三级视频在线观看| 欧美精品第1页| 欧美日韩第一区日日骚| 欧美日韩精品欧美日韩精品一| 91麻豆蜜桃一区二区三区| 成人短视频下载| 不卡高清视频专区| 成人app下载| 99视频一区二区三区| 99这里都是精品| 91国产免费观看| 欧美老女人在线| 日韩视频免费观看高清完整版在线观看 | 国产精品国产自产拍高清av| 久久嫩草精品久久久久| 久久精子c满五个校花| 久久久久成人黄色影片| 久久精品欧美日韩| 欧美激情一区二区三区四区| 国产精品丝袜在线| 综合中文字幕亚洲| 亚洲一本大道在线| 日本中文字幕不卡| 久久成人综合网| 国产99久久久国产精品潘金| 成人精品鲁一区一区二区| aaa亚洲精品| 精品1区2区3区| 日韩视频在线你懂得| 国产欧美日韩视频一区二区 | 日韩电影一区二区三区四区| 日日噜噜夜夜狠狠视频欧美人| 天天色综合天天| 韩国精品免费视频| 波多野结衣精品在线| 在线观看日韩电影| 91精品一区二区三区久久久久久 | 国产三级精品三级在线专区| 国产精品久久久久天堂| 亚洲一区二区视频在线观看| 视频一区视频二区在线观看| 看电视剧不卡顿的网站| 成人免费视频视频| 欧美日韩久久一区二区| 日韩久久精品一区| 国产精品福利一区| 性做久久久久久免费观看| 国产在线视频一区二区三区| 成人丝袜高跟foot| 欧美日韩精品欧美日韩精品一| 精品黑人一区二区三区久久| 国产欧美视频一区二区| 亚洲成人午夜影院| 国产精品亚洲人在线观看| 色噜噜久久综合| 日韩欧美高清dvd碟片| 国产精品麻豆网站| 日韩vs国产vs欧美| a4yy欧美一区二区三区| 日韩欧美国产综合在线一区二区三区| 欧美激情一区二区三区蜜桃视频| 亚洲一区二区三区四区中文字幕| 国产乱码精品一区二区三区忘忧草 | 国产三级一区二区| 亚洲一区二区三区在线| 懂色av一区二区三区蜜臀 | 精品日本一线二线三线不卡| 中文字幕中文字幕在线一区 | 国产精品一区二区x88av| 色婷婷久久99综合精品jk白丝| 日韩免费观看高清完整版| 一区二区三区四区亚洲| 成人一级黄色片| 欧美一区日韩一区| 一级女性全黄久久生活片免费| 国产乱码精品一区二区三区av | 亚洲日本va在线观看| 精品中文字幕一区二区| 欧美群妇大交群的观看方式| 国产精品视频看| 国产一区二区三区四| 欧美精品乱人伦久久久久久| 亚洲欧美视频在线观看视频| 国产精品18久久久久久vr| 91精品国产入口| 亚洲午夜在线视频| 91毛片在线观看| 亚洲欧洲精品一区二区三区不卡| 国产在线视频一区二区| 欧美va亚洲va香蕉在线| 日本不卡123| 欧美探花视频资源| 亚洲美女免费在线| 91年精品国产| 中文字幕一区二区三区四区 | 欧美日韩卡一卡二| 一区二区在线免费观看| 91小视频在线| 亚洲日本在线看| 国产日产精品1区| 久久99国产精品久久99果冻传媒| 91精品啪在线观看国产60岁| 亚洲va在线va天堂| 欧美探花视频资源| 五月天欧美精品| 这里是久久伊人| 日韩中文字幕亚洲一区二区va在线 | 大桥未久av一区二区三区中文| 久久综合五月天婷婷伊人| 国产一区二区在线观看免费| 欧美tickling网站挠脚心| 麻豆成人在线观看| 精品入口麻豆88视频| 国产在线播放一区| 国产网站一区二区三区| 成人激情av网| 一区二区三区精品视频| 在线观看三级视频欧美| 日韩影院免费视频| 日韩免费一区二区| 国产一区二区三区在线观看免费| 亚洲精品一区二区三区影院| 韩国女主播成人在线观看| 亚洲国产精品成人综合色在线婷婷 | 欧美人xxxx| 精品一区二区三区免费观看| 久久伊人中文字幕| 丁香激情综合五月| 亚洲日本在线视频观看| 欧美精品在欧美一区二区少妇| 日韩电影免费在线| 久久一夜天堂av一区二区三区 | 色av成人天堂桃色av| 亚洲大片一区二区三区| 欧美mv日韩mv国产网站| a亚洲天堂av| 天堂蜜桃91精品| 久久久久97国产精华液好用吗| a在线播放不卡| 爽好久久久欧美精品| 久久精品亚洲麻豆av一区二区 | 国产欧美一区二区精品秋霞影院| 99精品国产91久久久久久 | 国产一区二区调教| 亚洲欧美综合网| 91麻豆精品国产91久久久久久| 国产精品一级在线| 亚洲综合区在线| 精品国产欧美一区二区| 99久精品国产| 日韩高清欧美激情| 国产精品久久久久久久久果冻传媒| 欧美午夜一区二区三区| 国产精品18久久久久久久久久久久| 亚洲精品视频免费看| 精品久久久久香蕉网| 在线这里只有精品| 国产乱码精品一区二区三区忘忧草| 亚洲三级在线观看| 久久久久亚洲蜜桃| 欧美日韩高清不卡| 成人av片在线观看| 久久av资源网| 一区二区三区四区乱视频| 久久久亚洲国产美女国产盗摄| 在线影院国内精品| 高清成人在线观看| 图片区小说区国产精品视频 | 麻豆91精品视频| 亚洲精品老司机| 国产欧美一区二区精品仙草咪| 欧美老女人在线| 91亚洲国产成人精品一区二区三| 国产一区二区三区香蕉 | 国产精品一区二区不卡|