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

📄 advpreviewmenu.hpp

📁 Delphi的Office 2007风格界面控件
💻 HPP
📖 第 1 页 / 共 3 页
字号:
	void __fastcall UpdateSize(void);
	__property bool HideOnDeActivate = {read=FHideOnDeActivate, write=FHideOnDeActivate, nodefault};
	__property bool ShowBorder = {read=FShowBorder, write=FShowBorder, nodefault};
	__property Graphics::TColor BorderColor = {read=FBorderColor, write=FBorderColor, nodefault};
	__property TAdvCustomPreviewMenuPanel* PreviewMenuPanel = {read=FPreviewMenuPanel, write=FPreviewMenuPanel};
	
public:
	__fastcall virtual TPreviewMenuWindow(Classes::TComponent* AOwner);
	__fastcall virtual TPreviewMenuWindow(Classes::TComponent* AOwner, int Dummy);
	__fastcall virtual ~TPreviewMenuWindow(void);
	virtual void __fastcall SetBounds(int ALeft, int ATop, int AWidth, int AHeight);
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TPreviewMenuWindow(HWND ParentWindow) : Forms::TCustomForm(ParentWindow) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TAdvPreviewMenu : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	Classes::TComponent* FOwner;
	Controls::TImageList* FButtonImages;
	TAdvPreviewMenuItems* FMenuItems;
	TAdvCustomPreviewMenuStyler* FStyler;
	TAdvCustomPreviewMenuStyler* FInternalStyler;
	TAdvCustomPreviewMenuStyler* FCurrentStyler;
	int FMenuSpacing;
	TPreviewMenuWindow* FPreviewMenuWindow;
	TAdvPreviewMenuPanel* FAdvPreviewMenuPanel;
	TButtonCollection* FButtons;
	int FButtonSpacing;
	int FButtonHeight;
	int FTopFrameHeight;
	int FOffSetX;
	Imglist::TCustomImageList* FMenuImages;
	Imglist::TCustomImageList* FSubMenuImages;
	bool FShowHint;
	TButtonClickEvent FOnButtonClick;
	TMenuItemClickEvent FOnMenuItemClick;
	TSubMenuItemClickEvent FOnSubMenuItemClick;
	TMenuDrawItemEvent FOnMenuDrawItem;
	TSubMenuDrawItemEvent FOnSubMenuDrawItem;
	int FSubMenuItemSpacing;
	AnsiString FSubMenuCaption;
	TAdvPreviewSubMenuItems* FSubMenuItems;
	TDrawButtonFrameTopEvent FOnDrawButtonFrameTop;
	Classes::TNotifyEvent FOnPreviewHide;
	void __fastcall OnPreviewMenuWindowHide(System::TObject* Sender);
	void __fastcall OnPreviewMenuWindowClose(System::TObject* Sender, Forms::TCloseAction &Action);
	void __fastcall SetButtonImages(const Controls::TImageList* Value);
	void __fastcall SetMenuItems(const TAdvPreviewMenuItems* Value);
	void __fastcall SetStyler(const TAdvCustomPreviewMenuStyler* Value);
	AnsiString __fastcall GetVersion();
	void __fastcall SetVersion(const AnsiString Value);
	void __fastcall SetButtons(const TButtonCollection* Value);
	int __fastcall GetBottomFrameHeight(void);
	void __fastcall SetMenuImages(const Imglist::TCustomImageList* Value);
	void __fastcall SetSubMenuImages(const Imglist::TCustomImageList* Value);
	void __fastcall SetSubMenuItems(const TAdvPreviewSubMenuItems* Value);
	bool __fastcall GetVisible(void);
	
protected:
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
	void __fastcall InvalidateTopFrame(void);
	__property int TopFrameHeight = {read=FTopFrameHeight, nodefault};
	__property int BottomFrameHeight = {read=GetBottomFrameHeight, nodefault};
	__property int OffSetX = {read=FOffSetX, nodefault};
	__property bool Visible = {read=GetVisible, nodefault};
	__property Classes::TNotifyEvent OnPreviewHide = {read=FOnPreviewHide, write=FOnPreviewHide};
	
public:
	__fastcall virtual TAdvPreviewMenu(Classes::TComponent* AOwner);
	__fastcall virtual ~TAdvPreviewMenu(void);
	int __fastcall GetVersionNr(void);
	void __fastcall ShowMenu(int X, int Y);
	void __fastcall HideMenu(void);
	void __fastcall ShowShortCutHints(void);
	void __fastcall HideShortCutHints(void);
	__property TDrawButtonFrameTopEvent OnDrawButtonFrameTop = {read=FOnDrawButtonFrameTop, write=FOnDrawButtonFrameTop};
	
__published:
	__property TButtonCollection* Buttons = {read=FButtons, write=SetButtons};
	__property int ButtonSpacing = {read=FButtonSpacing, write=FButtonSpacing, nodefault};
	__property int ButtonHeight = {read=FButtonHeight, write=FButtonHeight, nodefault};
	__property TAdvPreviewMenuItems* MenuItems = {read=FMenuItems, write=SetMenuItems};
	__property int MenuSpacing = {read=FMenuSpacing, write=FMenuSpacing, nodefault};
	__property Imglist::TCustomImageList* MenuImages = {read=FMenuImages, write=SetMenuImages};
	__property TAdvPreviewSubMenuItems* SubMenuItems = {read=FSubMenuItems, write=SetSubMenuItems};
	__property AnsiString SubMenuCaption = {read=FSubMenuCaption, write=FSubMenuCaption};
	__property int SubMenuItemSpacing = {read=FSubMenuItemSpacing, write=FSubMenuItemSpacing, nodefault};
	__property Imglist::TCustomImageList* SubMenuImages = {read=FSubMenuImages, write=SetSubMenuImages};
	__property Controls::TImageList* ButtonImages = {read=FButtonImages, write=SetButtonImages};
	__property TAdvCustomPreviewMenuStyler* Styler = {read=FStyler, write=SetStyler};
	__property bool ShowHint = {read=FShowHint, write=FShowHint, nodefault};
	__property AnsiString Version = {read=GetVersion, write=SetVersion};
	__property TButtonClickEvent OnButtonClick = {read=FOnButtonClick, write=FOnButtonClick};
	__property TMenuItemClickEvent OnMenuItemClick = {read=FOnMenuItemClick, write=FOnMenuItemClick};
	__property TSubMenuItemClickEvent OnSubMenuItemClick = {read=FOnSubMenuItemClick, write=FOnSubMenuItemClick};
	__property TMenuDrawItemEvent OnMenuDrawItem = {read=FOnMenuDrawItem, write=FOnMenuDrawItem};
	__property TSubMenuDrawItemEvent OnSubMenuDrawItem = {read=FOnSubMenuDrawItem, write=FOnSubMenuDrawItem};
};


class PASCALIMPLEMENTATION TAdvPreviewMenuPanel : public TAdvCustomPreviewMenuPanel 
{
	typedef TAdvCustomPreviewMenuPanel inherited;
	
private:
	Classes::TComponent* FOwner;
	TAdvPreviewMenu* FAdvPreviewMenu;
	#pragma pack(push, 1)
	Types::TRect FLeftFrameRect;
	#pragma pack(pop)
	
	#pragma pack(push, 1)
	Types::TRect FRightFrameRect;
	#pragma pack(pop)
	
	int FItemIndex;
	int FItemHot;
	int FItemDown;
	int FItemHeight;
	int FImageSpace;
	int FLineSpace;
	Classes::TList* FButtonList;
	int FSubMenuItem;
	int FSubMenuItemHeight;
	int FSubMenuItemHot;
	int FSubMenuItemDown;
	int FSubMenuCaptionHeight;
	Menus::TPopupMenu* FSubMenuPopup;
	bool FInternalHideSubMenuPopup;
	int FHintItemIndex;
	int FHintSubMenuItemIndex;
	Advhintinfo::TAdvHintInfo* FOfficeHint;
	bool FIgnoreMouseMove;
	bool FShortCutItemHintShowing;
	bool FShortCutSubMenuItemHintShowing;
	AnsiString FShortCutChars;
	bool FButtonPartHot;
	bool FDropDownPartHot;
	HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMDialogChar(Messages::TWMKey &Message);
	void __fastcall OnButtonClick(System::TObject* Sender);
	void __fastcall SetItemHot(const int Value);
	void __fastcall SetSubMenuItemHot(const int Value);
	void __fastcall SetSubMenuItem(const int Value);
	void __fastcall SetOfficeHint(const Advhintinfo::TAdvHintInfo* Value);
	
protected:
	virtual void __fastcall Paint(void);
	DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift);
	void __fastcall DrawItems(void);
	void __fastcall DrawItem(int Index, bool RefreshItem = false);
	void __fastcall DrawSubMenuItems(void);
	void __fastcall DrawSubMenuItem(int AIndex, bool RefreshItem = false);
	void __fastcall DrawRightFrame(bool WithItems = true);
	int __fastcall ItemAtPos(int X, int Y);
	void __fastcall SelectItem(int Index);
	TAdvPreviewSubMenuItems* __fastcall GetSubMenuItems(void);
	int __fastcall SubMenuItemAtPos(int X, int Y);
	void __fastcall SelectSubMenuItem(int Index);
	void __fastcall HideMenuWindow(void);
	void __fastcall CheckKeyPress(Word Key);
	void __fastcall CheckMouseMove(int X, int Y);
	void __fastcall ShowSubMenuPopup(int AIndex);
	void __fastcall HideSubMenuPopup(void);
	void __fastcall ItemHotNext(void);
	void __fastcall ItemHotPrevious(void);
	void __fastcall SubMenuItemHotNext(void);
	void __fastcall SubMenuItemHotPrevious(void);
	void __fastcall ShowAllItemsShortCutHint(void);
	void __fastcall HideAllItemsShortCutHint(void);
	void __fastcall ShowItemShortCutHint(int Index);
	void __fastcall HideItemShortCutHint(int Index);
	void __fastcall DrawItemShortCutHint(int Index);
	void __fastcall DrawItemSubItemShortCutHint(int Index);
	void __fastcall ShowItemSubItemShortCutHint(int Index);
	void __fastcall HideItemSubItemShortCutHint(int Index);
	void __fastcall ShowAllSubMenuItemsShortCutHint(void);
	void __fastcall HideAllSubMenuItemsShortCutHint(void);
	void __fastcall DrawSubMenuItemShortCutHint(int Index);
	void __fastcall ShowSubMenuItemShortCutHint(int Index);
	void __fastcall HideSubMenuItemShortCutHint(int Index);
	void __fastcall InvalidateTopFrame(void);
	void __fastcall InvalidateLeftFrame(void);
	void __fastcall InvalidateRightFrame(void);
	Types::TRect __fastcall GetTopFrameRect();
	Types::TRect __fastcall GetItemFramesRect();
	Types::TRect __fastcall GetLeftFrameRect();
	Types::TRect __fastcall GetRightFrameRect();
	Types::TRect __fastcall GetItemRect(int Index);
	Types::TRect __fastcall GetItemDropDownRect(int Index);
	int __fastcall GetItemHeight(void);
	void __fastcall GetMaxItemSize(int &AHeight, int &AWidth);
	Types::TRect __fastcall GetSubMenuCaptionRect();
	Types::TRect __fastcall GetSubMenuItemRect(int Index);
	int __fastcall GetSubMenuItemHeight(void);
	void __fastcall GetSubMenuMaxItemSize(int Index, int &AHeight, int &AWidth, TAdvPreviewSubMenuItems* SubMenuItems = (TAdvPreviewSubMenuItems*)(0x0))/* overload */;
	void __fastcall GetSubMenuMaxItemSize(int &AHeight, int &AWidth)/* overload */;
	void __fastcall CalculateSubMenuItemSize(void);
	__property int ItemHot = {read=FItemHot, write=SetItemHot, nodefault};
	__property int SubMenuItem = {read=FSubMenuItem, write=SetSubMenuItem, nodefault};
	__property int SubMenuItemHot = {read=FSubMenuItemHot, write=SetSubMenuItemHot, nodefault};
	
public:
	__fastcall virtual TAdvPreviewMenuPanel(Classes::TComponent* AOwner);
	__fastcall virtual ~TAdvPreviewMenuPanel(void);
	virtual void __fastcall InitializeAndUpdate(void);
	
__published:
	__property TAdvPreviewMenu* AdvPreviewMenu = {read=FAdvPreviewMenu, write=FAdvPreviewMenu};
	__property Advhintinfo::TAdvHintInfo* OfficeHint = {read=FOfficeHint, write=SetOfficeHint};
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TAdvPreviewMenuPanel(HWND ParentWindow) : TAdvCustomPreviewMenuPanel(ParentWindow) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
static const Shortint MAJ_VER = 0x1;
static const Shortint MIN_VER = 0x0;
static const Shortint REL_VER = 0x0;
static const Shortint BLD_VER = 0x0;
static const Shortint MENUARROW_WIDTH = 0x18;
static const Shortint MINITEM_HEIGHT = 0xc;
static const Shortint SHADOW_WIDTH = 0x4;

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

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

⌨️ 快捷键说明

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