• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在同一系統中顯示GB字符和BIG5字符

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    當前由于大陸和港臺采用不同的內碼,因此產生了兩種常用的內碼GB/BIG5。以前的軟件都是利用內建的字庫來完成兩種內碼的顯示,而在這里我提供一種簡便的方法用于在 Windows 程序中顯示不同內碼的文字。 大家可能都注意到IE,MS Office97等軟件都可以根據不同
      當前由于大陸和港臺采用不同的內碼,因此產生了兩種常用的內碼GB/BIG5。以前的軟件都是利用內建的字庫來完成兩種內碼的顯示,而在這里我提供一種簡便的方法用于在Windows程序中顯示不同內碼的文字。

      大家可能都注意到IE,MS Office97等軟件都可以根據不同內碼使用不同的字體顯示而不需要平臺支持。他們利用的都是MS所提供的語言開發包進行開發,下面介紹這種方法:

      首先你需要安裝MS提供的GB和BIG5字體,(可在MS站點免費下載)。

      然后需要修改你的顯示代碼,對于不同的模式裝入不同的字體。這種技術的核心就是指定不同的字符集和字體名稱,示范代碼如下:


    //下面的代碼將裝入BIG5字體并顯示
    CFont font;
    LOGFONT lf; //LOGFONT結構中的變量用于定義字體的各種特性
    memset(&lf,0,sizeof(lf));
    lf.lfCharSet = CHINESEBIG5_CHARSET; //設置字符集
    lf.lfHeight = 20;
    strcpy(lf.lfFaceName,"MingLiu"); //設置字體名稱 MingLiu為MS提供的BIG5字體
    font.CreateFontIndirect(&lf); //創建字體
    CFont* pF = (CFont*)dc.SelectObject(&font); //保存當前字體
    dc.TextOut(0,0,_T("what you want to display"));
    dc.SelectObject(pF); //恢復以前的字體

    但是系統中安裝的字體我們是不知道的,因此我們應該找出我們所需要的字體是否已經安裝。Windows中的EnumFontFamiliesEx可以幫助我們。該函數的說明如下:


    int EnumFontFamiliesEx(HDC hdc,LPLOGFONT lpLogfont,
    FONTENUMPROC lpEnumFontFamExProc,
    LPARAM lParam,DWORD dwFlags);
    在調用該功能時需要在lpLogfont中設置相應的值,下面的代碼表示列出所有BIG5字體。
    HWND hW=::GetFocus();
    HDC hdc=::GetDC(hW);
    LOGFONT lf;
    memset(&lf,0,sizeof(lf));
    lf.lfCharset = CHINESEBIG5_CHARSET; //如果該值為DEFAULT_CHARSET將會列出所有字體
    lf.lfFaceName = "";
    lf.lfPitchAndFamily = 0;
    EmunFontFamiliesEx(hdc,&lf,myEnumFontFamExProc,0,0);
    同時你還需要定義一個回調函數,在每找到一種字體時該函數都將被調用。函數原型如下:
    int CALLBACK myEnumFontFamExProc(ENUMLOGFONTEX *lpelfe,NEWTEXTMETRICEX *lpntme, int FontType,LPARAM lParam)
    {
    TRACE("font family name\n",lpelfe->elfLogFont.lfFaceName);
    //將該字體LOGFONT或是FaceName保存到自己的數據中
    }

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>