中國人自古就有自右至左、從上到下書寫漢字的習慣。而當我們在自己所編寫的應用程式中使用輸出函式輸出的總是自左至右的橫排文字。有沒有可能在我們的應用程式中實現豎寫漢字的效果呢?筆者偶然發現了一種利用vc實現豎寫漢字效果的方法,現在就把它介紹給大家。
windows系統內建了許多名稱以「@」開頭的字集,這些字集有乙個共同的特點,即其所包含的文字全都是平躺著的(字頭朝左,字底朝右)。如果我們能將這些字逆時針旋轉270度後再顯示出來,就可以達到實現豎寫漢字效果的目的了。
要使文字發生旋轉,我們只需建立乙個邏輯字型並設定該邏輯字型的顯示角度,再設定其字型名稱為乙個以「@」開頭的字集的名稱即可。我們可以採用兩種方式建立邏輯字型。
其一,用cfont類的成員函式createfont直接建立邏輯字型。createfont的引數定義如下:
bool createfont(
int nheight, //字型的高度
int nwidth, //字型的寬度
int nescapement, //字型顯示的角度
int norientation, //字型的角度
int nweight, //字型的磅數
byte bitalic, //斜體字體
byte bunderline, //帶下劃線的字型
byte cstrikeout, //帶刪除線的字型
byte ncharset, //所需的字符集
byte noutprecision, //輸出的精度
byte nclipprecision, //裁減的精度
byte nquality, //邏輯字型與輸出裝置的實際
//字型之間的精度
byte npitchandfamily, //字型間距和字型集
lpctstr lpszfacename //字型名稱
);其中nescapement單位為0.1角度,方向為逆時針,所以為了使平躺的字立起來應設定其值為2700,lpszfacename則賦以「@」開頭的字集的名稱,如「@system」。
其二,利用logfont結構,將該結構作為引數呼叫cfont類的成員函式createfontindirect建立邏輯字型。logfont結構通常被用來描述一種邏輯字型,結構內的各變數分別代表邏輯字型的各個屬性,這些變數與函式createfont的引數相同。其結構如下:
typedef struct taglogfont logfont;
下面我們就以乙個示例來說明豎寫漢字的實現方法:
2.在cmainframe::oncreate函式中新增如下**,使窗體最大化。afxgetmainwnd()->showwindow(sw_showmaximized);
3.新增如下**實現豎寫功能。
void cchildview::onpaint()
4.編譯連線,執行。
以上例項在windows98下,以vc++6.0編譯通過。
php漢字轉拼音 漢字轉拼音 用PHP實現
每日17點準時技術乾貨分享 php實現漢字轉拼音 php漢字轉拼音我使用到了overtrue pinyin拓展 一 安裝overtrue pinyin拓展 composer require overtrue pinyin二 overtrue pinyin拓展簡單使用overtrue pinyin拼音...
VC用ADO連線oracle的方法
import c program files common files system ado msado15.dll no namespace rename eof adoeof connectionptr m pconnection recordsetptr m precordset 初始化com...
用Openssl實現電子簽名 VC
部落格 http blog.csdn.net wallimn 網路硬碟 最近花了些時間研究了一下數字簽名,因為電子簽名在當今時代太重要了,電子商務 網上銀行 電子政務等,許多領域都離不開它。說到電子簽名,首先要介紹幾個基本概念。一 對稱加密 所謂對稱加密,就是加密與解密使用同樣的鑰匙。對稱加密的特點...