亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? winsubclass.pas

?? 超級報表系統軟件VclSkin.v2.60.4.29.完整源代碼版.rar
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
unit WinSubClass;

{.$define buttontest}
{$WARNINGS OFF}
{$HINTS OFF}
{$RANGECHECKS OFF}

interface

uses
  Windows, SysUtils, Classes, Graphics, Controls, ComCtrls,  Forms,
  Menus, Messages, ExtCtrls, StdCtrls, Buttons, CommCtrl,imglist,
  winskindata,tabs,TypInfo;

type
  TSkinControlState = ( scMouseIn,scDown);
  TAcControl = class(TControl);
//  TACCustomCheckBox = Class(TCustomCheckBox);
  TAcGraphicControl = class(TGraphicControl);
  TSkinAcListView = class(TCustomListView);

  TSkinControl = class(TComponent)
  Protected
     state : set of TSkinControlState;
     fCanvas : TCanvas;
     done:boolean;
     isdraw : boolean;
     enabled : boolean;
     focused : boolean;
     caption : string;
     FObjectInst,FPrevWndProc :pointer;
     procedure FillBG( dc:HDC; rc:TRect);
     procedure doLogMsg(aid:string;msg:TMessage);
     procedure Default(Var Msg: TMessage);
     procedure Invalidate;
     procedure WMPaint(message:TMessage);
  public
     fsd: TSkinData;
     hwnd : HWND;
     OldWndProc: TWndMethod;
     control:Twincontrol;
     boundsrect:Trect;
     GControl : TGraphicControl;
     newColor:boolean;
     oldcolor:Tcolor;
     Inited:boolean;
     skinstate : integer;
     skinform: Tcomponent;
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
     Procedure Init(sf:Tcomponent;sd:TSkinData;acanvas:TCanvas;acolor:boolean=false);virtual;
     Procedure Inithwnd(ahwnd:Thandle;sd:TSkinData;acanvas:TCanvas;sf:Tcomponent);virtual;
     procedure MouseLeave;
     Procedure Unsubclass; virtual;
     procedure NewWndProc(var Message: TMessage);
     function BeforeProc(var Message: TMessage):boolean;virtual;
     procedure AfterProc(var Message: TMessage);virtual;
     procedure PaintControl(adc:HDC=0);virtual;
     procedure DrawControl( dc:HDC; rc:TRect);Virtual;
     Procedure SkinChange; Virtual;
     function  GetState:integer;Virtual;
     function  GetProperty(aprop:string):string;
     function  GetIntProperty(aprop:string;var i:Longword):boolean;
     Procedure SetColor;
     Procedure RestoreColor;
     procedure DrawBMPSkin( abmp:Tbitmap;rc:TRect;aObject:TdataSkinObject;
              I,N:integer;trans:integer);
     procedure DrawSkinMap( dc:HDC; rc:TRect;
        aObject:TdataSkinObject;I,N:integer);
     procedure DrawSkinMap1( dc:HDC; rc:TRect;
       bmp:Tbitmap;I,N:integer);
     procedure DrawSkinMap2( dc:HDC; rc:TRect;
       bmp:Tbitmap;I,N:integer);
     procedure DrawSkin( rc:TRect;aObject:TdataSkinObject;
                   I,N:integer;trans:integer);
     procedure DrawSkinMap3( acanvas:Tcanvas; rc:TRect;
        bmp:Tbitmap;I,N:integer);
     procedure DrawBuf( dc:HDC; rc:TRect);
     procedure DrawCaption(acanvas: TCanvas; rc:TRect;text:string;
             enabled,defaulted:boolean;Alignment:word=DT_CENTER);
     procedure DrawImgCaption(acanvas: TCanvas; rc:TRect;
           ImgList:hImageList;imgIndex:integer;text:string;talign:integer=DT_CENTER);
  end;

  TSkinButton = class(TSkinControl)
  Protected
     btemp:Tbitmap;
  public
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure AfterProc(var Message: TMessage);override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinBitButton = class(TSkinButton)
  Protected
     procedure DrawGlyph( acanvas:Tcanvas; rc:TRect;
       bmp:Tbitmap;I,N:integer);
  public
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinSpeedButton = class(TSkinBitButton)
  protected
  public
//     GControl : TGraphicControl;
     gcanvas:Tcanvas;
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
     procedure DrawSpeedbtn( acanvas:Tcanvas; rc:TRect);
     procedure InitGraphicControl(sf:Tcomponent;sd:TSkinData;acanvas:TCanvas);
     procedure AfterProc(var Message: TMessage);override;
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure PaintControl(adc:HDC=0);override;
  end;

  TSkinCheckBox = class(TSkinControl)
  Protected
  public
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure AfterProc(var Message: TMessage);override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinComBox = class(TSkinControl)
  Protected
     dwStyle,ExStyle:longword;
     procedure DrawSkinMap3( dc:HDC; rc:TRect;
        bmp:Tbitmap;I,N:integer);
     procedure DrawControl1( dc:HDC; rc:TRect);
  public
     procedure AfterProc(var Message: TMessage);override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinRadioButton = class(TSkinControl)
  Protected
  public
     procedure AfterProc(var Message: TMessage);override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinStatusBar = class(TSkinControl)
  Protected
     procedure Defaultpaint(dc:HDC; rc:TRect;I:integer;
             text:string='';Align:TAlignment=taLeftJustify);
     procedure drawitem(dc:HDC; rc:TRect;I:integer;
             text:string='';Align:TAlignment=taLeftJustify);
  public
     SizeGrip:boolean;
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinBox = class(TSkinControl)
  Protected
  public
     border:integer;
     procedure AfterProc(var Message: TMessage);override;
     Procedure Init(sf:Tcomponent;sd:TSkinData;acanvas:TCanvas;acolor:boolean=false);override;
     Procedure Unsubclass; override;
  end;

  TSkinUpDown = class(TSkinControl)
  Protected
     procedure DrawButton(acanvas:Tcanvas;rc:TRect;n,ar:integer);
     procedure DrawSkinButton(dc:HDC;rc:TRect;n,ar:integer);
  public
     inedit : boolean;
     dir : integer;
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;


  TSkinTabPosition = (StTop,Stbottom,Stleft,Stright);
  TSkinTab = class(TSkinControl)
  Protected
     Position:TSkinTabPosition;
     procedure Drawitem( dc:HDC; rc:TRect;I:integer);
     procedure ERASEBKGND( dc:HDC);
     procedure GetPosition;
     procedure WMPaint(var msg:Tmessage);
     procedure ClipUpdown(dc:HDC;rc:Trect);
     function FindScroll:boolean;
     procedure DrawTabBorder(adc:HDC);
  public
     tabbmp,borderbmp : Tbitmap;
     Drawtemp: Tbitmap;
     updown:TskinUpdown;
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
     function  BeforeProc(var Message: TMessage):boolean;override;
     Procedure Inithwnd(ahwnd:Thandle;sd:TSkinData;acanvas:TCanvas;sf:Tcomponent);override;
     Procedure inittab;
     Procedure SkinChange;override;
  end;

  TSkinTab31 = class(TSkinControl)
  Protected
     tabbmp:Tbitmap;
     updown:TskinUpdown;
     scroller : Twincontrol;
  public
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
     //Procedure Inithwnd(ahwnd:Thandle;sd:TSkinData;acanvas:TCanvas;sf:Tcomponent);override;
     Procedure Init(sf:Tcomponent;sd:TSkinData;acanvas:TCanvas;acolor:boolean=false);override;
     Procedure inittab;
  end;

  TSkinTransObj = class(TSkinControl)
  Protected
     procedure ERASEBKGND( dc:HDC);
  public
//     Brush,Oldbrush: HBrush;
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure AfterProc(var Message: TMessage);override;
  end;

  TSkinProgress = class(TSkinControl)
  Protected
  public
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure DrawControl1( dc:HDC; rc:TRect);
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinTrackBar = class(TSkinControl)
  Protected
     procedure Drawthumb(PDraw:PNMCustomDraw);
     function CustomDraw(PDraw:PNMCustomDraw):integer;
  public
     function BeforeProc(var Message: TMessage):boolean;override;
  end;

  TSkinEdit = class(TSkinControl)
  Protected
     procedure FindUPDown(ahwnd:Thandle;sd:TSkinData;acanvas:TCanvas);
     procedure DrawControl1( dc:HDC; rc:TRect);
     procedure PaintControl1(adc:HDC=0);
  public
     updown:TSkinUpDown;
//     procedure Init(aControl:Twincontrol;sd:TSkinData;acanvas:TCanvas;acolor:boolean=false);override;
//     procedure Inithwnd(ahwnd:Thandle;sd:TSkinData;acanvas:TCanvas);override;
     procedure AfterProc(var Message: TMessage);override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinSizer = class(TSkinControl)
  Protected
  public
      function BeforeProc(var Message: TMessage):boolean;override;
      procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TScrollBarPos = record
      Btn:integer;
      ScrollArea:integer;
      Thumb:integer;
      ThumbPos:integer;
      MsgID:integer;
  end;
  TSkinScroll=(HB,VB);

  TSkinScrollBar = class(TSkinControl)
  Protected
     downBtn:integer;
     dwStyle,ExStyle:longword;
     corner:Trect;
     trackpos,trackdrag:boolean;
     InVScroll,InHScroll:boolean;
     Info:array[HB..VB] of SCROLLINFO;
     SR:array[HB..VB] of TRect;
     SP:array[HB..VB] of TScrollBarPos;
     sbinstall:boolean;
     crect:Trect;
     lock:integer;
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure AfterProc(var Message: TMessage);override;
     procedure DrawScrollBar( dc:HDC; rc:TRect;ntype:integer;bScrollbarCtrl:Boolean);
     procedure GetScrollBarRect(rc:TRect);
     procedure GetThumb(rc:TRect;ntype:integer);
     Function  GetPos(x:integer;bar:TSkinScroll):integer;
     function  NCLButtonDown(var Message: TMessage):boolean;
     procedure Scrollclient(wpara:integer);
     procedure WMNCCalcSize(Var Msg: TMessage);
     procedure WMVScrollbar(var Message: TMessage);
     Procedure DragThumb(bar:TSkinScroll;MsgID:longword);
     Function GetThumbPos(x:integer;bar:TSkinScroll):integer;
     procedure Dolog(bar:TSkinScroll);
     procedure SetScrollbar(b:boolean;sb:integer);
     procedure SBProc(var Message: TMessage);
     Procedure Unsubclass;override;
  public
     procedure DrawControl( dc:HDC; rc:TRect);override;
     Procedure InitScrollbar(acontrol:Twincontrol;sd:TSkinData;acanvas:TCanvas;sf:Tcomponent;adrag:boolean=true);virtual;
  end;

  TSkinScControl = class(TSkinControl)
  protected
     downBtn:integer;
     SP: TScrollBarPos;
     procedure GetThumb(rc:TRect;ntype:integer);
     procedure DrawScrollBar( dc:HDC; rc:TRect;ntype:integer;bScrollbarCtrl:Boolean);
     function BeforeProc(var Message: TMessage):boolean;override;
  public
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinHeader = class(TSkinControl)
  protected
     procedure DrawItem(ImgList:hImageList;acanvas:Tcanvas;rc:Trect;index:Integer);
  public
     Procedure Inithwnd(ahwnd:Thandle;sd:TSkinData;acanvas:TCanvas;sf:Tcomponent);override;
     function BeforeProc(var Message: TMessage):boolean;override;
     procedure DrawControl( dc:HDC; rc:TRect);override;
  end;

  TSkinListView = class(TSkinScrollBar)
  protected
     FHeaderInstance: Pointer;
     FDefHeaderProc: Pointer;
     hHwnd: THandle;
     header:Tskinheader;
     procedure SetHeaderOwnerDraw;
     procedure DrawHeaderItem(DrawItemStruct: TDrawItemStruct);
     procedure Drawheader;
     procedure drawitem(dc:HDC; rc:TRect;acolumn:TListColumn);
     procedure WMNotify(var Message:TWMNotify);
  public
     Procedure InitScrollbar(acontrol:Twincontrol;sd:TSkinData;acanvas:TCanvas;sf:Tcomponent;adrag:boolean=true);override;
//     function BeforeProc(var Message: TMessage):boolean;override;
     procedure HeaderProc(var Message: TMessage);
  end;

procedure DrawArrow(ACanvas: TCanvas; X, Y, Orientation: integer);
procedure MyDrawCaption(acanvas: TCanvas; rc:TRect;
 text:string; enabled,defaulted:boolean;Alignment: TAlignment=taCenter);
procedure MyDrawImgCaption(acanvas: TCanvas; rc:TRect;
 ImgList:TCustomImageList;imgIndex:integer;
 text:string; enabled,defaulted:boolean;Alignment: TAlignment=taCenter);

implementation
uses ImgUtil,WinSkinForm,winskindlg;

{procedure TControlSubClass.winpaint(var Message: TMessage);
var  DC: HDC;
  PS: TPaintStruct;
  hwnd : Thandle;
begin
     hwnd:=Twincontrol(control).handle;
     canvas.handle := BeginPaint(hwnd, ps);
     PaintControl;
     if not done then orgWindowProc(Message);
     EndPaint(hwnd, ps);
     Canvas.Handle := 0;
     message.result:=0;

  Canvas.Lock;
  try
    Canvas.Handle := message.wparam;
    try
     PaintControl;
    finally
    end;
  finally
    Canvas.Unlock;
  end;
  message.result:=0;
end;}

constructor TSkinControl.Create(AOwner: TComponent);
begin
   inherited create(aowner);
   hwnd:=0;
   Gcontrol := nil;
   control := nil;
   inited:=false;
   skinstate:=0;
end;

//in Tfrom : skincontrol will destory when owner (control) is destory
//in Hwnd window : skincontrol will destory when capture wm_ncdestory message
//Unsubclass : used for unskin, restore old color.

Procedure TSkinControl.Init(sf:Tcomponent;sd:TSkinData;acanvas:TCanvas;acolor:boolean=false);
begin
   if inited then exit;
   newcolor:=acolor;
   fsd:=sd;
   skinform:=sf;
   fCanvas:=acanvas;
   control:=Twincontrol(owner);
   hwnd := control.handle;
   OldWndProc:= Control.WindowProc;
   Control.WindowProc := NewWndProc;
   control.DoubleBuffered:=true;
   Twinskinform(skinform).addcontrollist(self);

   Focused := (GetFocus= hWnd);
   enabled := (GetWindowLong(hWnd,GWL_STYLE) and WS_DISABLED)=0;
   caption:=getformcaption(hwnd);
   if newcolor then begin
      oldcolor:=Taccontrol(control).color;
      Taccontrol(control).color:=fsd.colors[csButtonFace];
   end;
   control.Invalidate;
   inited:=true;
   skinstate:=skin_active;
end;

Procedure TSkinControl.SetColor;
begin
end;

Procedure TSkinControl.RestoreColor;
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费高清av| 亚洲伊人伊色伊影伊综合网 | 国产高清在线精品| 欧美午夜精品免费| 国产精品天天摸av网| 麻豆精品久久精品色综合| 色悠悠久久综合| 国产午夜亚洲精品羞羞网站| 性做久久久久久久免费看| 成人激情综合网站| 久久久www免费人成精品| 午夜国产不卡在线观看视频| 91网页版在线| 中文字幕中文字幕一区二区 | 欧美手机在线视频| 国产精品精品国产色婷婷| 久久99久久99精品免视看婷婷| 色综合网色综合| 国产精品久久久一区麻豆最新章节| 老鸭窝一区二区久久精品| 欧美日韩在线三区| 亚洲国产视频一区| 在线观看亚洲精品| 一区二区三区在线看| av激情综合网| 1区2区3区精品视频| 成人黄色电影在线| 亚洲欧洲色图综合| 91香蕉视频在线| 亚洲精品欧美二区三区中文字幕| 成人h动漫精品| 中文字幕永久在线不卡| 97久久精品人人做人人爽50路| 国产精品三级久久久久三级| 成人黄色一级视频| 亚洲欧美综合在线精品| 99久久综合狠狠综合久久| 中文字幕一区在线| 色悠悠久久综合| 性做久久久久久久免费看| 91精品国产91久久综合桃花| 免费在线观看日韩欧美| wwwwxxxxx欧美| 不卡的av中国片| 国产三级精品视频| 色综合色综合色综合| 亚洲一区成人在线| 日韩免费性生活视频播放| 国内精品免费**视频| 久久久国产综合精品女国产盗摄| 国产凹凸在线观看一区二区| 国产精品久久久久久久久晋中| 91网站最新地址| 日日夜夜精品免费视频| 亚洲欧洲综合另类在线| 首页亚洲欧美制服丝腿| 亚洲精品国产a| 欧美亚洲国产bt| 乱一区二区av| 国产精品麻豆视频| 欧美日韩精品一二三区| 精品夜夜嗨av一区二区三区| 国产精品视频你懂的| 欧美性猛交一区二区三区精品| 蜜臀av性久久久久av蜜臀妖精| 久久久久青草大香线综合精品| 91视频com| 日韩二区在线观看| 国产精品不卡视频| 日韩欧美在线一区二区三区| 成人高清av在线| 三级不卡在线观看| 国产精品盗摄一区二区三区| 欧美精品一卡两卡| jlzzjlzz亚洲日本少妇| 男人操女人的视频在线观看欧美| 中文字幕精品一区二区三区精品| 欧美日韩免费一区二区三区视频| 国产精品中文字幕一区二区三区| 亚洲国产va精品久久久不卡综合| 国产三级久久久| 日韩午夜av电影| 欧美综合天天夜夜久久| 国产成人免费av在线| 五月天亚洲精品| 亚洲精选免费视频| 国产欧美日韩亚州综合| 777色狠狠一区二区三区| 91小宝寻花一区二区三区| 国产在线精品免费av| 日韩av网站在线观看| 亚洲精品视频一区二区| 国产精品污污网站在线观看| 精品国产乱码久久久久久影片| 欧美性猛交xxxx黑人交| 91猫先生在线| jiyouzz国产精品久久| 国产精品99久久久| 韩国一区二区三区| 精品在线免费观看| 久久精品国产第一区二区三区| 亚洲成a人在线观看| 亚洲激情图片qvod| 亚洲欧美日韩系列| 日韩伦理av电影| 国产精品日日摸夜夜摸av| 久久久精品黄色| 久久先锋资源网| 精品国产伦一区二区三区免费| 日韩免费观看高清完整版| 国产丝袜欧美中文另类| 精品久久久久久久久久久院品网| 欧美美女直播网站| 日韩一区二区免费在线电影| 欧美三区免费完整视频在线观看| 在线免费亚洲电影| 一本高清dvd不卡在线观看| 91网上在线视频| 欧美自拍丝袜亚洲| 欧美日韩在线直播| 日韩午夜中文字幕| 欧美精品一区二区精品网| 久久老女人爱爱| 国产精品看片你懂得| 亚洲欧洲精品成人久久奇米网| 亚洲日本一区二区| 亚洲自拍偷拍九九九| 亚洲.国产.中文慕字在线| 日本强好片久久久久久aaa| 久久精品99久久久| 国产a区久久久| 91精品1区2区| 91精品婷婷国产综合久久| 亚洲精品在线免费观看视频| 国产日韩影视精品| 一区二区三区中文字幕| 丝袜诱惑制服诱惑色一区在线观看| 五月婷婷久久综合| 国产黄色精品网站| 欧美亚洲国产一卡| 欧美电影免费观看高清完整版在线 | 欧美系列日韩一区| 日韩女优电影在线观看| 中文字幕免费不卡在线| 一区二区高清在线| 久久99精品久久久久久 | 久久99热99| av电影在线观看一区| 欧美日韩黄色影视| 国产午夜三级一区二区三| 综合精品久久久| 久久福利资源站| 色伊人久久综合中文字幕| 欧美一二三区精品| 亚洲人xxxx| 国产一区二区三区黄视频 | 亚洲欧洲av另类| 蜜桃av一区二区| 色综合天天天天做夜夜夜夜做| 日韩欧美国产麻豆| 亚洲黄网站在线观看| 国产一区二区三区精品视频| 欧美视频一区二区三区在线观看| 中文字幕在线观看一区二区| 午夜久久电影网| av动漫一区二区| 久久亚洲欧美国产精品乐播| 亚洲一区成人在线| 成人激情黄色小说| 26uuu色噜噜精品一区二区| 亚洲一区二区欧美日韩| 丁香六月久久综合狠狠色| 欧美一级夜夜爽| 亚洲国产欧美在线| 91网站在线观看视频| 国产免费久久精品| 精品在线一区二区三区| 欧美日韩一区二区三区在线看| 国产精品久久久久毛片软件| 韩日精品视频一区| 日韩一区二区电影在线| 亚洲国产精品嫩草影院| 色狠狠av一区二区三区| 中文字幕一区二区三区不卡| 国产精品1024| 久久色在线观看| 久久疯狂做爰流白浆xx| 欧美日韩免费在线视频| 亚洲国产精品一区二区尤物区| 一本色道久久综合亚洲精品按摩| 国产色一区二区| 国产福利视频一区二区三区| 欧美videossexotv100| 久久精品国产免费看久久精品| 在线91免费看| 首页国产欧美日韩丝袜| 欧美精品日韩一区| 亚洲国产精品综合小说图片区| 在线视频一区二区三| 亚洲一区二区三区四区不卡|