⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 suiskinengine.hpp

📁 SUISkin 是为Delphi和C++Builder开发的最易用的界面增强VCL组件包。它能完全自动的为您的应用程序添加支持换肤功能
💻 HPP
📖 第 1 页 / 共 2 页
字号:
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TsuiSkinMenuBar(HWND ParentWindow) : Comctrls::TToolBar(ParentWindow) { }
	#pragma option pop
	
};


class DELPHICLASS TsuiSkinWindowWnd;
class DELPHICLASS TsuiSkinControlWnd;
class PASCALIMPLEMENTATION TsuiSkinWindowWnd : public TsuiSkinWindow 
{
	typedef TsuiSkinWindow inherited;
	
private:
	unsigned m_hWnd;
	void *m_OldWndProc;
	void *m_NewWndProc;
	unsigned m_OldStyle;
	unsigned m_OldStyle2;
	bool m_SavedWndStyle2;
	bool m_Expanded;
	void __fastcall InitControl(unsigned hWnd);
	void __fastcall UnInitControl(unsigned hWnd)/* overload */;
	void __fastcall UnInitControl(TsuiSkinControlWnd* SkinCtrl)/* overload */;
	
protected:
	virtual void __fastcall ActiveChanged(void);
	virtual void __fastcall DoSaveWndStyle(void);
	virtual void __fastcall CallDefaultWndProc(Messages::TMessage &Msg);
	virtual bool __fastcall BeforeDefaultWndProc(Messages::TMessage &Msg);
	virtual void __fastcall AfterDefaultWndProc(Messages::TMessage &Msg);
	virtual unsigned __fastcall GetHandle(void);
	virtual void __fastcall Init(unsigned hWnd);
	virtual void __fastcall Uninit(void);
	virtual void __fastcall InitControls(void);
	virtual void __fastcall UnInitControls(void);
public:
	#pragma option push -w-inl
	/* TsuiSkinWindow.Create */ inline __fastcall TsuiSkinWindowWnd(unsigned hWnd, TsuiSkinEngine* Engine, bool ForDialog) : TsuiSkinWindow(hWnd, Engine, ForDialog) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TsuiSkinWindow.Destroy */ inline __fastcall virtual ~TsuiSkinWindowWnd(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TsuiSkinMenuBarControlButton : public Extctrls::TCustomPanel 
{
	typedef Extctrls::TCustomPanel inherited;
	
private:
	bool m_MouseIn;
	Graphics::TBitmap* m_Glyph;
	MESSAGE void __fastcall MouseLeave(Messages::TMessage &Msg);
	MESSAGE void __fastcall MouseEnter(Messages::TMessage &Msg);
	void __fastcall SetGlyph(const Graphics::TBitmap* Value);
	HIDESBASE MESSAGE void __fastcall WMERASEBKGND(Messages::TMessage &Msg);
	
protected:
	virtual void __fastcall Paint(void);
	
public:
	__fastcall virtual TsuiSkinMenuBarControlButton(Classes::TComponent* AOwner);
	__fastcall virtual ~TsuiSkinMenuBarControlButton(void);
	
__published:
	__property Graphics::TBitmap* Glyph = {read=m_Glyph, write=SetGlyph};
	__property Color  = {default=-2147483633};
	__property OnClick ;
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TsuiSkinMenuBarControlButton(HWND ParentWindow) : Extctrls::TCustomPanel(ParentWindow) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TsuiSkinCollectionItem : public Classes::TCollectionItem 
{
	typedef Classes::TCollectionItem inherited;
	
private:
	AnsiString m_SkinFile;
	Suiskinutils::TsuiSkinReader* m_Reader;
	void __fastcall ReadSkinData(Classes::TStream* Stream);
	void __fastcall WriteSkinData(Classes::TStream* Stream);
	
protected:
	virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
	
public:
	__fastcall virtual TsuiSkinCollectionItem(Classes::TCollection* Collection);
	__fastcall virtual ~TsuiSkinCollectionItem(void);
	
__published:
	__property AnsiString SkinFile = {read=m_SkinFile, write=m_SkinFile};
};


#pragma option push -b-
enum TsuiSkinControlMouseState { suiSkinMouseIn, suiSkinMouseDown };
#pragma option pop

class DELPHICLASS TsuiSkinControl;
class PASCALIMPLEMENTATION TsuiSkinControl : public System::TObject 
{
	typedef System::TObject inherited;
	
protected:
	TsuiSkinWindow* m_SkinWnd;
	TsuiSkinEngine* m_Engine;
	System::Set<TsuiSkinControlMouseState, suiSkinMouseIn, suiSkinMouseDown>  m_MouseState;
	bool m_Destroying;
	virtual bool __fastcall BeforeDefProc(Messages::TMessage &Message);
	virtual void __fastcall AfterDefProc(Messages::TMessage &Message);
	virtual void __fastcall PaintControl(void);
	virtual void __fastcall MouseEnter(void);
	virtual void __fastcall MouseExit(void);
	virtual void __fastcall MouseDown(void);
	virtual void __fastcall MouseUp(void);
	virtual void __fastcall KeyDown(int VKey);
	virtual void __fastcall KeyUp(int VKey);
	virtual void __fastcall ActiveChanged(void);
	virtual void __fastcall DoInit(void);
	virtual void __fastcall DoUninit(void);
	virtual Types::TRect __fastcall GetClientRect(void) = 0 ;
	virtual unsigned __fastcall GetHandle(void) = 0 ;
	virtual bool __fastcall Enabled(void) = 0 ;
	
public:
	void __fastcall PaintBG(Graphics::TBitmap* Buf, AnsiString Caption, const Graphics::TFont* Font, const Types::TRect &TextRect);
	void __fastcall PaintBGW(Graphics::TBitmap* Buf, WideString Caption, const Graphics::TFont* Font, const Types::TRect &TextRect);
	void __fastcall PaintBitmap(Graphics::TBitmap* Buf, const Types::TPoint &Position);
	__fastcall virtual ~TsuiSkinControl(void);
	virtual bool __fastcall ParnetColor(void);
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TsuiSkinControl(void) : System::TObject() { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TsuiSkinControlVCL : public TsuiSkinControl 
{
	typedef TsuiSkinControl inherited;
	
private:
	Classes::TWndMethod m_OldWndProc;
	void __fastcall NewWndProc(Messages::TMessage &Message);
	
protected:
	Controls::TControl* m_Control;
	virtual Types::TRect __fastcall GetClientRect();
	virtual bool __fastcall Enabled(void);
	virtual unsigned __fastcall GetHandle(void);
	
public:
	__fastcall TsuiSkinControlVCL(Controls::TControl* WinCtrl, TsuiSkinWindow* SkinWnd);
	__fastcall virtual ~TsuiSkinControlVCL(void);
};


class PASCALIMPLEMENTATION TsuiSkinControlWnd : public TsuiSkinControl 
{
	typedef TsuiSkinControl inherited;
	
private:
	void *m_OldWndProc;
	void *m_NewWndProc;
	void __fastcall NewWndProc(Messages::TMessage &Message);
	
protected:
	unsigned m_CtrlWnd;
	virtual Types::TRect __fastcall GetClientRect();
	virtual bool __fastcall Enabled(void);
	unsigned __fastcall GetEngineBrush(void);
	virtual unsigned __fastcall GetHandle(void);
	int __fastcall GetWidth(void);
	int __fastcall GetHeight(void);
	AnsiString __fastcall GetText();
	
public:
	__fastcall TsuiSkinControlWnd(unsigned CtrlWnd, TsuiSkinWindow* SkinWnd);
	__fastcall virtual ~TsuiSkinControlWnd(void);
};


class DELPHICLASS TsuiSkinBorderWinControl;
class PASCALIMPLEMENTATION TsuiSkinBorderWinControl : public TsuiSkinControlVCL 
{
	typedef TsuiSkinControlVCL inherited;
	
protected:
	virtual void __fastcall PaintControl(void);
public:
	#pragma option push -w-inl
	/* TsuiSkinControlVCL.Create */ inline __fastcall TsuiSkinBorderWinControl(Controls::TControl* WinCtrl, TsuiSkinWindow* SkinWnd) : TsuiSkinControlVCL(WinCtrl, SkinWnd) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TsuiSkinControlVCL.Destroy */ inline __fastcall virtual ~TsuiSkinBorderWinControl(void) { }
	#pragma option pop
	
};


class DELPHICLASS TsuiSkinBorderWndControl;
class PASCALIMPLEMENTATION TsuiSkinBorderWndControl : public TsuiSkinControlWnd 
{
	typedef TsuiSkinControlWnd inherited;
	
protected:
	virtual void __fastcall PaintControl(void);
public:
	#pragma option push -w-inl
	/* TsuiSkinControlWnd.Create */ inline __fastcall TsuiSkinBorderWndControl(unsigned CtrlWnd, TsuiSkinWindow* SkinWnd) : TsuiSkinControlWnd(CtrlWnd, SkinWnd) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TsuiSkinControlWnd.Destroy */ inline __fastcall virtual ~TsuiSkinBorderWndControl(void) { }
	#pragma option pop
	
};


class DELPHICLASS TsuiSkinInternalScrollBar;
class DELPHICLASS TsuiSkinScrollWinControl;
class PASCALIMPLEMENTATION TsuiSkinScrollWinControl : public TsuiSkinBorderWinControl 
{
	typedef TsuiSkinBorderWinControl inherited;
	
private:
	TsuiSkinInternalScrollBar* m_VScroll;
	TsuiSkinInternalScrollBar* m_HScroll;
	void __fastcall PaintScroll(void);
	
protected:
	virtual void __fastcall AfterDefProc(Messages::TMessage &Message);
	virtual void __fastcall PaintControl(void);
	virtual void __fastcall ActiveChanged(void);
	virtual void __fastcall DoInit(void);
	virtual void __fastcall DoUninit(void);
public:
	#pragma option push -w-inl
	/* TsuiSkinControlVCL.Create */ inline __fastcall TsuiSkinScrollWinControl(Controls::TControl* WinCtrl, TsuiSkinWindow* SkinWnd) : TsuiSkinBorderWinControl(WinCtrl, SkinWnd) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TsuiSkinControlVCL.Destroy */ inline __fastcall virtual ~TsuiSkinScrollWinControl(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TsuiSkinInternalScrollBar : public Extctrls::TCustomPanel 
{
	typedef Extctrls::TCustomPanel inherited;
	
private:
	Controls::TWinControl* m_Ctrl;
	Graphics::TBitmap* m_Buf;
	TsuiSkinScrollWinControl* m_SkinCtrl;
	int m_Type;
	HIDESBASE MESSAGE void __fastcall WMLBUTTONDOWN(Messages::TMessage &Msg);
	HIDESBASE MESSAGE void __fastcall WMLBUTTONUP(Messages::TMessage &Msg);
	HIDESBASE MESSAGE void __fastcall WMERASEBKGND(Messages::TMessage &Msg);
	
protected:
	virtual void __fastcall Paint(void);
	
public:
	__fastcall virtual TsuiSkinInternalScrollBar(Classes::TComponent* AOwner);
	__fastcall virtual ~TsuiSkinInternalScrollBar(void);
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TsuiSkinInternalScrollBar(HWND ParentWindow) : Extctrls::TCustomPanel(ParentWindow) { }
	#pragma option pop
	
};


class DELPHICLASS TsuiSkinExtComboboxLikeControl;
class DELPHICLASS TsuiSkinInternalComboButton;
class PASCALIMPLEMENTATION TsuiSkinInternalComboButton : public Extctrls::TCustomPanel 
{
	typedef Extctrls::TCustomPanel inherited;
	
private:
	Controls::TWinControl* m_Ctrl;
	TsuiSkinExtComboboxLikeControl* m_SkinCtrl;
	HIDESBASE MESSAGE void __fastcall WMLBUTTONDOWN(Messages::TMessage &Msg);
	HIDESBASE MESSAGE void __fastcall WMLBUTTONUP(Messages::TMessage &Msg);
	HIDESBASE MESSAGE void __fastcall WMERASEBKGND(Messages::TMessage &Msg);
	
protected:
	virtual void __fastcall Paint(void);
	
public:
	__fastcall virtual TsuiSkinInternalComboButton(Classes::TComponent* AOwner);
	__fastcall virtual ~TsuiSkinInternalComboButton(void);
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TsuiSkinInternalComboButton(HWND ParentWindow) : Extctrls::TCustomPanel(ParentWindow) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TsuiSkinExtComboboxLikeControl : public TsuiSkinBorderWinControl 
{
	typedef TsuiSkinBorderWinControl inherited;
	
protected:
	TsuiSkinInternalComboButton* m_Btn;
	virtual void __fastcall AfterDefProc(Messages::TMessage &Message);
	virtual void __fastcall PaintControl(void);
	virtual void __fastcall ActiveChanged(void);
	virtual void __fastcall DoInit(void);
	virtual void __fastcall DoUninit(void);
public:
	#pragma option push -w-inl
	/* TsuiSkinControlVCL.Create */ inline __fastcall TsuiSkinExtComboboxLikeControl(Controls::TControl* WinCtrl, TsuiSkinWindow* SkinWnd) : TsuiSkinBorderWinControl(WinCtrl, SkinWnd) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TsuiSkinControlVCL.Destroy */ inline __fastcall virtual ~TsuiSkinExtComboboxLikeControl(void) { }
	#pragma option pop
	
};


typedef TMetaClass*TsuiSkinControlVCLClass;

typedef TMetaClass*TsuiControlClass;

#pragma pack(push, 4)
struct TsuiSkinCtrlVCLDef
{
	TMetaClass*CtrlClass;
	TMetaClass*SkinCtrlClass;
} ;
#pragma pack(pop)

typedef TMetaClass*TsuiSkinControlWndClass;

#pragma pack(push, 4)
struct TsuiSkinCtrlWndDef
{
	System::SmallString<64>  CtrlClass;
	TMetaClass*SkinCtrlClass;
} ;
#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
static const Word SUIM_ACTIVED = 0x2aab;
static const Word SUIM_PAINTCONTROL = 0x2aac;
extern PACKAGE bool g_ShowMDIControlButtons;
extern PACKAGE void __fastcall RegisterSkinControlClass(const TsuiSkinCtrlVCLDef * Defs, const int Defs_Size)/* overload */;
extern PACKAGE void __fastcall RegisterSkinControlClass(const TsuiSkinCtrlWndDef * Defs, const int Defs_Size)/* overload */;
extern PACKAGE void __fastcall RegisterBorderFilterClass(AnsiString ClassName);
extern PACKAGE void __fastcall RegisterDisabledClass(AnsiString ClassName);
extern PACKAGE void __fastcall RegisterDlgFormClass(AnsiString ClassName);

}	/* namespace Suiskinengine */
using namespace Suiskinengine;
#pragma option pop	// -w-
#pragma option pop	// -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// SUISkinEngine

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -