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

明輝手游網(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!");


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


主站蜘蛛池模板: 日韩精品影院 | 日欧毛片 | 亚洲h视频在线观看 | 亚洲黄网站wwwwww | 欧美一级www片免费观看 | 亚洲一区在线免费观看 | 婷婷色香五月激情综合2020 | 亚洲天码中文字幕第一页 | 欧美性大战久久久久久 | 欧美行性性性o00x | 亚洲黄色网址大全 | 在线免费观看h视频 | 香蕉久久夜色精品国产尤物 | 欧美又大粗又爽又黄大片视频黑人 | 亚洲欧美综合色区小说 | 青青影院在线播放免费 | 午夜看片| 日韩免费精品一级毛片 | 日韩国产一区二区 | 青青草原国产视频 | 青青青国产精品手机在线观看 | 天堂网avtt| 日韩国产欧美 | 视频一区二区中文字幕 | 日韩欧美在线观看 | 亚欧有色| 五月婷婷一区 | 青草国产在线观看 | 欧美视频在线观看xxxx | 亚洲国产成人久久综合区 | 亚洲乱码一二三四区国产 | 日本不卡一区二区三区 | 天天射色综合 | 伊人网视频在线观看 | 色婷婷久久综合中文久久一本 | 亚洲男人天堂影院 | 午夜在线网址 | 日本在线视频播放 | 青青青手机在线视频 | 日韩婷婷| 日本视频免费在线播放 |