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

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

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

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

這個當然和 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 的強大以及易用性。

很簡單,幾句代碼:

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!");


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


主站蜘蛛池模板: 日韩中文字幕视频在线观看 | 日本黄色片网址 | 小泽玛利亚久久一区二区三区 | 日韩欧美在线综合网高清 | 午夜色站 | 日本三级香港三级国产三级 | 亚洲欧美日本韩国综合在线观看 | 午夜影院在线观看视频 | 五月婷婷丁香久久 | 一区二区久久 | 伊人久热这里只有精品视频99 | 青娱乐极品视频在线 | 色香色香欲天天天影视综合网 | 日日夜夜亚洲 | 手机在线成人精品视频网 | 欧美做真爱免费无遮挡 | 最近最新中文字幕免费的一页 | 青青青视频在线免费观看 | 伊人影院在线视频 | 午夜视频入口 | 伊人久久婷婷丁香六月综合基地 | 日本大胆欧美人术艺术 | 欧美做a一级视频免费观看 欧美坐爱视频 | 伊人免费| 亚洲欧洲国产精品久久 | 亚洲线精品一区二区三区 | 中文字幕一二三四区 | 在线老司机 | 青青青草影院 | 五月婷婷丁香花 | 日韩视频高清 | 亚洲色视频在线播放网站 | 青草视频免费 | 资源站在线| 伊人久久大香线蕉综合热线 | 亚洲欧美综合图片 | 日韩在线视频二区 | 天天看天天爽天天摸天天添 | 日韩三级精品 | 日本欧美视频在线 | 色射色|