文字如何加邊框 |
尚未結案
|
csm825050
一般會員 發表:49 回覆:29 積分:15 註冊:2003-08-20 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
您好:
偷懶的方法,下面是用程式示範給您看,其實沒那麼麻煩
您只要將您要顯示黑色的部份設為最上層,然後將全部的Label都設為透明
,然後上下左右個放一個白的Label就可以達到有邊框的效果了.
這個玩法可以達到很多種效果,如陰影字,中空字,邊框字...等
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Transparent:=true;
Label2.Transparent:=true;
Label3.Transparent:=true;
Label4.Transparent:=true;
Label5.Transparent:=true;
Label2.left:=Label1.Left-2;
Label2.Top:=Label1.Top;
Label3.Top:=Label1.Top-2;
Label3.Left:=Label1.Left;
Label4.Top:=Label1.Top;
Label4.Left:=Label1.Left+2;
Label5.Top:=Label1.Top+2;
Label5.Left:=Label1.Left;
end; 發表人 - supman 於 2005/04/25 17:54:42
|
csm825050
一般會員 發表:49 回覆:29 積分:15 註冊:2003-08-20 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
您好:
不用Label的話改用Canvas,先在上下左右畫出白外匡,最後在中間加上黑色的字就是外匡字了.
SetBkMode(Form1.Canvas.Handle, TRANSPARENT);
Canvas.Font.Size := 24;
Canvas.Font.Color := clwhite;
Canvas.TextOut(100-2,100,'asdf');
Canvas.TextOut(100,100-2,'asdf');
Canvas.TextOut(100 2,100 2,'asdf');
Canvas.TextOut(100,100 2,'asdf');
Canvas.Font.Color := clBlack;
Canvas.TextOut(100,100,'asdf'); 發表人 - supman 於 2005/04/26 09:39:09
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
csm825050 您好: 插個花!
如果csm825050您的意思是要:
"將畫出的字串用矩形框住它"的話,底下程式碼請參考。
要精確的控制字串的位置,其實還要在去取得字串描繪的相關屬性。
您再深入研究研究吧! < class="code">
//---------------------------------------------------------------------------
void BoxText(int x, int y, AnsiString msg)
{
tagSIZE ts = Form1->Canvas->TextExtent(msg); Form1->Canvas->Rectangle(x-1,y-1,x ts.cx 1,y ts.cy 1);
Form1->Canvas->TextOut(x,y,msg);
} void __fastcall TForm1::Button1Click(TObject *Sender)
{
BoxText(50,50,"Apply");
}
//--------------------------------------------------------------------------- RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====#####
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |