六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

如何在 BCB 中旋轉(zhuǎn)并輸出文字

[摘要]有很多文章介紹如何在 VC 中輸出旋轉(zhuǎn)文字,但卻很少見到哪篇文章介紹在 BCB 中產(chǎn)生類似效果的。。以至于很多人認(rèn)為在 BCB 中是無法做到類似效果的,當(dāng)然這些人就有理由在那里口口聲聲地說 BCB 如何如何的差勁了!這個當(dāng)然和 BCB 本身那套圖形組件的設(shè)計是有很大關(guān)系的。VCL 圖形組件封裝了 ...
有很多文章介紹如何在 VC 中輸出旋轉(zhuǎn)文字,但卻很少見到哪篇文章介紹在 BCB 中產(chǎn)生類似效果的。。以至于很多人認(rèn)為在 BCB 中是無法做到類似效果的,當(dāng)然這些人就有理由在那里口口聲聲地說 BCB 如何如何的差勁了!

這個當(dāng)然和 BCB 本身那套圖形組件的設(shè)計是有很大關(guān)系的。

VCL 圖形組件封裝了 WINDOWS  圖形設(shè)備接口(GUI),使得在 WINDOWS 程序設(shè)計中添加圖形變得很容易。BCB 的設(shè)計的確很優(yōu)秀!它的意圖是將 VCL 圖形組件 設(shè)計成三個層次:

最高層:繪制線條和圖形,比如:MoveTo, LineTo, Rectangle, and Ellipse
              輸出并控制文本,比如:TextOut, TextHeight, TextWidth, and TextRect
              填充形狀,比如:FillRect and FloodFill

中層:   定制輸出的文本和圖形,通過控制以下屬性:Pen, Brush, and Font,Pixels
              復(fù)制以及合并圖形,比如:Draw, StretchDraw, BrushCopy, and CopyRect 方法; CopyMode 屬性

底層:  直接調(diào)用 WINDOWS 的 GDI 函數(shù),VCL 圖形組件中提供了一個 Handle 屬性,通過它,你能控制一切!

BCB 的用戶絕大多數(shù)只會使用高層和中層的一些方法和屬性,他們壓根不知道還有一個什么 Handle 屬性!針對這些用戶,以及那些對 BCB 有異議的人,我提供了下面這個例子來說明 BCB 的強(qiáng)大以及易用性。

很簡單,幾句代碼:

void __fastcall TForm1::FormPaint(TObject *Sender)
{
         LOGFONT lf;

        GetObject(Canvas->Font->Handle,
             sizeof (LOGFONT),  
             &lf);

        lf.lfEscapement =  450;   //set to 450 to make 45 degree angle
        lf.lfOrientation = 450;
        lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;

        Canvas->Font->Handle = CreateFontIndirect (&lf);
        Canvas->Brush->Style = bsClear;
        Canvas->Pen->Color=clRed;
        Canvas->TextOut (20, 120, "WOW!! Angled text!");
}

怎么樣?是不是很簡單啊。。。我記得在 VC 中單定義一個字體變量就要十多個參數(shù)呢!下面我們來簡單地分析一下這個例子:

第一句:LOGFONT lf;
LOGFONT 變量能完全地控制了字體的屬性,在 wingdi.h 中被定義為:typedef LOGFONTA LOGFONT; 而 LOGFONTA 定義為:

typedef struct tagLOGFONTA
{
    LONG      lfHeight;
    LONG      lfWidth;
    LONG      lfEscapement;
    LONG      lfOrientation;
    LONG      lfWeight;
    BYTE      lfItalic;
    BYTE      lfUnderline;
    BYTE      lfStrikeOut;
    BYTE      lfCharSet;
    BYTE      lfOutPrecision;
    BYTE      lfClipPrecision;
    BYTE      lfQuality;
    BYTE      lfPitchAndFamily;
    CHAR      lfFaceName[LF_FACESIZE];
} LOGFONTA;

第二句:

GetObject(Canvas->Font->Handle,    //看!用到 Handle 屬性了吧!這句用來取得畫布字體的句柄
          sizeof (LOGFONT),       //這句取得 LOGFONT 的 SIZE
          &lf);

下面幾句通過調(diào)整 LOGFONT 的屬性來控制字體

lf.lfEscapement =  450;   //set to 450 to make 45 degree angle
lf.lfOrientation = 450;
lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;

下面創(chuàng)建了一個新的字體,并且用來設(shè)置 Canvas->Font 的字體

Canvas->Font->Handle = CreateFontIndirect (&lf);
Canvas->Brush->Style = bsClear;
Canvas->Pen->Color=clRed;
Canvas->TextOut (20, 120, "WOW!! Angled text!");


就這么簡單。。。在底層控制其他的圖形也類似于這種方法,大家不仿試試:)


主站蜘蛛池模板: 午夜性刺激片免费观看成人 | 人人舔人人爱 | 欧洲成品大片在线播放 | 日本 亚洲 欧美 | 日本激情视频网站w | 欧美亚洲国产精品久久久久 | 天天射天天干天天操 | 中文字幕一区波多野结衣 | 青青草华人在线 | 日本高清色www| 欧美一区二区三区在观看 | 日韩特黄特色大片免费视频 | 中文字幕亚洲一区婷婷 | 日韩天天干 | 日韩毛片在线影视 | 在线免费观看亚洲视频 | 欧美视频在线第一页 | 亚色在线观看 | 手机亚洲第1页 | 思思久久99热免费精品6 | 欲色影视天天一区二区三区色香欲 | 青青草原成年网站免费观看 | 青青青草视频在线观看 | 中文字幕一区二区在线观看 | 亚洲欧美男人天堂 | 亚洲视频免费播放 | 日本天堂视频 | 综合88| 伊人影院视频 | 欧美性视频一区二区三区 | 亚洲视频在线观看免费 | 亚洲欧美日韩成人一区在线 | 中文字幕国产 | 一级毛片一级毛片一级毛片aaav | 中文字幕三级在线不卡 | 又粗又硬又爽的三级视频 | 日本午夜小视频 | 深夜视频在线看 | 欧美性猛交一区二区三区 | 亚洲第一激情 | 日韩欧美 在线播放 |