PageControl之TabSheet颜色问题 |
尚未結案
|
hrbshen
一般會員 發表:10 回覆:11 積分:4 註冊:2005-04-12 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
將 TPageControl 的 OwnerDraw 屬性設為 True
然後在 TPageControl 的 OnDrawTab 事件中用類似的程式碼做控制
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); var c: TCanvas; begin c := PageControl1.Canvas; case TabIndex of 0:begin c.Brush.Color := clBlack; // 底色 c.Font.Color := clWhite; // 字色 end; 1:begin c.Brush.Color := clWhite; c.Font.Color := clBlack; end; end; c.FillRect(Rect); c.TextOut(Rect.Left 2, Rect.Top 2, PageControl1.Pages[TabIndex].Caption); end;-- hagar. |
hrbshen
一般會員 發表:10 回覆:11 積分:4 註冊:2005-04-12 發送簡訊給我 |
我的TabSheet都带有Image的。下面的方法将消除Image,如何解决?谢谢
引言: 將 TPageControl 的 OwnerDraw 屬性設為 True 然後在 TPageControl 的 OnDrawTab 事件中用類似的程式碼做控制procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); var c: TCanvas; begin c := PageControl1.Canvas; case TabIndex of 0:begin c.Brush.Color := clBlack; // 底色 c.Font.Color := clWhite; // 字色 end; 1:begin c.Brush.Color := clWhite; c.Font.Color := clBlack; end; end; c.FillRect(Rect); c.TextOut(Rect.Left 2, Rect.Top 2, PageControl1.Pages[TabIndex].Caption); end;-- hagar. |
hrbshen
一般會員 發表:10 回覆:11 積分:4 註冊:2005-04-12 發送簡訊給我 |
我的TabSheet都带有Image的。下面的方法将消除Image,如何解决?谢谢
引言: 將 TPageControl 的 OwnerDraw 屬性設為 True 然後在 TPageControl 的 OnDrawTab 事件中用類似的程式碼做控制procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); var c: TCanvas; begin c := PageControl1.Canvas; case TabIndex of 0:begin c.Brush.Color := clBlack; // 底色 c.Font.Color := clWhite; // 字色 end; 1:begin c.Brush.Color := clWhite; c.Font.Color := clBlack; end; end; c.FillRect(Rect); c.TextOut(Rect.Left 2, Rect.Top 2, PageControl1.Pages[TabIndex].Caption); end;-- hagar. |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
hrbshen
一般會員 發表:10 回覆:11 積分:4 註冊:2005-04-12 發送簡訊給我 |
你好
我通过TPageControl.Images加入了ImageList,之后对每一个TabSheet.ImageIndex指定了相应的图。即每一TabSheet的Title前显示一个图。
將 TPageControl 的 OwnerDraw 屬性設為 True后就不能显示此图了。
可能 我没有说清楚哟。
谢谢
引言: 所謂的 TabSheet 帶 Image 是指 TabSheet 上有放 TImage 嗎? 會將其消除是指 TImage 的圖會被消除嗎? 小弟試的結果並不會啊! -- hagar. |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
了解了,改成如下試試:
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); var c: TCanvas; bmp: TBitmap; begin c := PageControl1.Canvas; case TabIndex of 0:begin c.Brush.Color := clBlack; // 底色 c.Font.Color := clWhite; // 字色 end; 1:begin c.Brush.Color := clWhite; c.Font.Color := clBlack; end; end; c.FillRect(Rect); bmp := TBitmap.Create; ImageList1.GetBitmap(TabIndex, bmp); c.Draw(Rect.Left, Rect.Top, bmp); c.TextOut(Rect.Left bmp.Width 2, Rect.Top 2, PageControl1.Pages[TabIndex].Caption); bmp.Free; end;-- hagar. |
hrbshen
一般會員 發表:10 回覆:11 積分:4 註冊:2005-04-12 發送簡訊給我 |
谢谢。
引言: 了解了,改成如下試試:procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); var c: TCanvas; bmp: TBitmap; begin c := PageControl1.Canvas; case TabIndex of 0:begin c.Brush.Color := clBlack; // 底色 c.Font.Color := clWhite; // 字色 end; 1:begin c.Brush.Color := clWhite; c.Font.Color := clBlack; end; end; c.FillRect(Rect); bmp := TBitmap.Create; ImageList1.GetBitmap(TabIndex, bmp); c.Draw(Rect.Left, Rect.Top, bmp); c.TextOut(Rect.Left bmp.Width 2, Rect.Top 2, PageControl1.Pages[TabIndex].Caption); bmp.Free; end;-- hagar. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |