WinAPI: DrawFrameControl – 繪製控制項

來源:互聯網
上載者:User
//聲明:DrawFrameControl(  DC: HDC;            {裝置環境控制代碼}  const Rect: TRect;  {矩形}  uType, uState: UINT {控制項類型與控制項狀態}): BOOL;//控制項類型 uType 參數可選值:DFC_CAPTION   = 1; {標題按鈕}DFC_MENU      = 2; {菜單}DFC_SCROLL    = 3; {捲軸按鈕}DFC_BUTTON    = 4; {標準按鈕}DFC_POPUPMENU = 5; {快顯功能表}//控制項狀態  uState 參數可選值:{針對 DFC_CAPTION}DFCS_CAPTIONCLOSE   = 0;DFCS_CAPTIONMIN     = 1;DFCS_CAPTIONMAX     = 2;DFCS_CAPTIONRESTORE = 3;DFCS_CAPTIONHELP    = 4;{針對 DFC_MENU}DFCS_MENUARROW      = 0;DFCS_MENUCHECK      = 1;DFCS_MENUBULLET     = 2;DFCS_MENUARROWRIGHT = 4;{針對 DFC_SCROLL}DFCS_SCROLLUP            = 0;DFCS_SCROLLDOWN          = 1;DFCS_SCROLLLEFT          = 2;DFCS_SCROLLRIGHT         = 3;DFCS_SCROLLCOMBOBOX      = 5;DFCS_SCROLLSIZEGRIP      = 8;DFCS_SCROLLSIZEGRIPRIGHT = $10;{針對 DFC_BUTTON}DFCS_BUTTONCHECK      = 0;DFCS_BUTTONRADIOIMAGE = 1;DFCS_BUTTONRADIOMASK  = 2;DFCS_BUTTONRADIO      = 4;DFCS_BUTTON3STATE     = 8;DFCS_BUTTONPUSH       = $10;{通用狀態}DFCS_INACTIVE    = $100;DFCS_PUSHED      = $200;DFCS_CHECKED     = $400;DFCS_TRANSPARENT = $800;DFCS_HOT         = $1000;DFCS_ADJUSTRECT  = $2000;DFCS_FLAT        = $4000;DFCS_MONO        = $8000;//舉例:unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ExtCtrls;type  TForm1 = class(TForm)    RadioGroup1: TRadioGroup;    RadioGroup2: TRadioGroup;    RadioGroup3: TRadioGroup;    RadioGroup4: TRadioGroup;    RadioGroup5: TRadioGroup;    RadioGroup6: TRadioGroup;    Panel1: TPanel;    procedure RadioGroup1Click(Sender: TObject);    procedure RadioGroup2Click(Sender: TObject);    procedure RadioGroup3Click(Sender: TObject);    procedure RadioGroup4Click(Sender: TObject);    procedure RadioGroup5Click(Sender: TObject);    procedure RadioGroup6Click(Sender: TObject);    procedure Draw;  end;var  Form1: TForm1;implementation{$R *.dfm}var  DFC  : Integer = 0;  DFCS1: Integer = 0;  DFCS2: Integer = 0;procedure TForm1.Draw;begin  Panel1.Refresh;  DrawFrameControl(GetDC(Panel1.Handle), Rect(10,10,100,50), DFC, DFCS1 or DFCS2);end;procedure TForm1.RadioGroup1Click(Sender: TObject);begin  Panel1.Refresh;  case RadioGroup1.ItemIndex of    0: begin      DFC := DFC_CAPTION;      RadioGroup3.Enabled := True;      RadioGroup4.Enabled := False;      RadioGroup5.Enabled := False;      RadioGroup6.Enabled := False;    end;    1: begin      DFC := DFC_MENU;      RadioGroup3.Enabled := False;      RadioGroup4.Enabled := True;      RadioGroup5.Enabled := False;      RadioGroup6.Enabled := False;    end;    2: begin      DFC := DFC_SCROLL;      RadioGroup3.Enabled := False;      RadioGroup4.Enabled := False;      RadioGroup5.Enabled := True;      RadioGroup6.Enabled := False;    end;    3: begin      DFC := DFC_BUTTON;      RadioGroup3.Enabled := False;      RadioGroup4.Enabled := False;      RadioGroup5.Enabled := False;      RadioGroup6.Enabled := True;    end;    4: begin      DFC := DFC_POPUPMENU;      RadioGroup3.Enabled := False;      RadioGroup4.Enabled := True;      RadioGroup5.Enabled := False;      RadioGroup6.Enabled := False;    end;  end;end;procedure TForm1.RadioGroup2Click(Sender: TObject);begin  case RadioGroup2.ItemIndex of    0: DFCS1 := DFCS_INACTIVE;    1: DFCS1 := DFCS_PUSHED;    2: DFCS1 := DFCS_CHECKED;    3: DFCS1 := DFCS_TRANSPARENT;    4: DFCS1 := DFCS_HOT;    5: DFCS1 := DFCS_ADJUSTRECT;    6: DFCS1 := DFCS_FLAT;    7: DFCS1 := DFCS_MONO;  end;  Draw;end;procedure TForm1.RadioGroup3Click(Sender: TObject);begin  case RadioGroup3.ItemIndex of    0: DFCS2 := DFCS_CAPTIONCLOSE;    1: DFCS2 := DFCS_CAPTIONMIN;    2: DFCS2 := DFCS_CAPTIONMAX;    3: DFCS2 := DFCS_CAPTIONRESTORE;    4: DFCS2 := DFCS_CAPTIONHELP;  end;  Draw;end;procedure TForm1.RadioGroup4Click(Sender: TObject);begin  case RadioGroup4.ItemIndex of    0: DFCS2 := DFCS_MENUARROW;    1: DFCS2 := DFCS_MENUCHECK;    2: DFCS2 := DFCS_MENUBULLET;    3: DFCS2 := DFCS_MENUARROWRIGHT;  end;  Draw;end;procedure TForm1.RadioGroup5Click(Sender: TObject);begin  case RadioGroup5.ItemIndex of    0: DFCS2 := DFCS_SCROLLUP;    1: DFCS2 := DFCS_SCROLLDOWN;    2: DFCS2 := DFCS_SCROLLLEFT;    3: DFCS2 := DFCS_SCROLLRIGHT;    4: DFCS2 := DFCS_SCROLLCOMBOBOX;    5: DFCS2 := DFCS_SCROLLSIZEGRIP;    6: DFCS2 := DFCS_SCROLLSIZEGRIPRIGHT;  end;  Draw;end;procedure TForm1.RadioGroup6Click(Sender: TObject);begin  case RadioGroup6.ItemIndex of    0: DFCS2 := DFCS_BUTTONCHECK;    1: DFCS2 := DFCS_BUTTONRADIOIMAGE;    2: DFCS2 := DFCS_BUTTONRADIOMASK;    3: DFCS2 := DFCS_BUTTONRADIO;    4: DFCS2 := DFCS_BUTTON3STATE;    5: DFCS2 := DFCS_BUTTONPUSH;  end;  Draw;end;end.//:


<br />附上表單結構代碼:</p><p>object Form1: TForm1<br /> Left = 0<br /> Top = 0<br /> Caption = 'Form1'<br /> ClientHeight = 386<br /> ClientWidth = 499<br /> Color = clBtnFace<br /> Font.Charset = DEFAULT_CHARSET<br /> Font.Color = clWindowText<br /> Font.Height = -11<br /> Font.Name = 'Tahoma'<br /> Font.Style = []<br /> OldCreateOrder = False<br /> PixelsPerInch = 96<br /> TextHeight = 13<br /> object RadioGroup1: TRadioGroup<br /> Left = 0<br /> Top = 8<br /> Width = 137<br /> Height = 129<br /> Caption = 'RadioGroup1'<br /> Items.Strings = (<br /> 'DFC_CAPTION '<br /> 'DFC_MENU '<br /> 'DFC_SCROLL '<br /> 'DFC_BUTTON '<br /> 'DFC_POPUPMENU ')<br /> TabOrder = 0<br /> OnClick = RadioGroup1Click<br /> end<br /> object RadioGroup2: TRadioGroup<br /> Left = 0<br /> Top = 143<br /> Width = 137<br /> Height = 170<br /> Caption = 'RadioGroup2'<br /> Items.Strings = (<br /> 'DFCS_INACTIVE'<br /> 'DFCS_PUSHED'<br /> 'DFCS_CHECKED'<br /> 'DFCS_TRANSPARENT'<br /> 'DFCS_HOT'<br /> 'DFCS_ADJUSTRECT'<br /> 'DFCS_FLAT'<br /> 'DFCS_MONO')<br /> TabOrder = 1<br /> OnClick = RadioGroup2Click<br /> end<br /> object RadioGroup3: TRadioGroup<br /> Left = 143<br /> Top = 8<br /> Width = 178<br /> Height = 129<br /> Caption = 'RadioGroup3'<br /> Items.Strings = (<br /> 'DFCS_CAPTIONCLOSE '<br /> 'DFCS_CAPTIONMIN'<br /> 'DFCS_CAPTIONMAX'<br /> 'DFCS_CAPTIONRESTORE'<br /> 'DFCS_CAPTIONHELP')<br /> TabOrder = 2<br /> OnClick = RadioGroup3Click<br /> end<br /> object RadioGroup4: TRadioGroup<br /> Left = 327<br /> Top = 8<br /> Width = 170<br /> Height = 129<br /> Caption = 'RadioGroup4'<br /> Items.Strings = (<br /> 'DFCS_MENUARROW'<br /> 'DFCS_MENUCHECK'<br /> 'DFCS_MENUBULLET'<br /> 'DFCS_MENUARROWRIGHT')<br /> TabOrder = 3<br /> OnClick = RadioGroup4Click<br /> end<br /> object RadioGroup5: TRadioGroup<br /> Left = 143<br /> Top = 143<br /> Width = 178<br /> Height = 170<br /> Caption = 'RadioGroup5'<br /> Items.Strings = (<br /> 'DFCS_SCROLLUP'<br /> 'DFCS_SCROLLDOWN'<br /> 'DFCS_SCROLLLEFT'<br /> 'DFCS_SCROLLRIGHT'<br /> 'DFCS_SCROLLCOMBOBOX'<br /> 'DFCS_SCROLLSIZEGRIP'<br /> 'DFCS_SCROLLSIZEGRIPRIGHT')<br /> TabOrder = 4<br /> OnClick = RadioGroup5Click<br /> end<br /> object RadioGroup6: TRadioGroup<br /> Left = 327<br /> Top = 143<br /> Width = 170<br /> Height = 170<br /> Caption = 'RadioGroup6'<br /> Items.Strings = (<br /> 'DFCS_BUTTONCHECK'<br /> 'DFCS_BUTTONRADIOIMAGE'<br /> 'DFCS_BUTTONRADIOMASK'<br /> 'DFCS_BUTTONRADIO'<br /> 'DFCS_BUTTON3STATE'<br /> 'DFCS_BUTTONPUSH')<br /> TabOrder = 5<br /> OnClick = RadioGroup6Click<br /> end<br /> object Panel1: TPanel<br /> Left = 0<br /> Top = 319<br /> Width = 499<br /> Height = 67<br /> Align = alBottom<br /> Caption = 'Panel1'<br /> TabOrder = 6<br /> end<br />end<br />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.