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

📄 bcgptoolbar.h

📁 远程网络监视程序的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
//*******************************************************************************
// COPYRIGHT NOTES
// ---------------
// This is a part of the BCGControlBar Library
// Copyright (C) 1998-2000 BCGSoft Ltd.
// All rights reserved.
//
// This source code can be used, distributed or modified
// only under terms and conditions 
// of the accompanying license agreement.
//*******************************************************************************

//
// bcgtoolbar.h : definition of CBCGPToolBar
//
// This code is based on the Microsoft Visual C++ sample file
// TOOLBAR.C from the OLDBARS example
//

#ifndef _TOOLBAR_H_
#define _TOOLBAR_H_

#ifndef __AFXTEMPL_H__
	#include "afxtempl.h"
#endif

#include "BCGCBPro.h"
#include "BCGPToolbarDropTarget.h"
#include "BCGPToolbarDropSource.h"
#include "BCGPToolBarImages.h"
#include "BCGPToolbarButton.h"
#include "BCGPControlBarImpl.h"
#include "CmdUsageCount.h"
#include "BCGPCommandManager.h"
#include "BCGPVisualManager.h"
#include "BCGGlobals.h"

#include "BCGPBaseToolBar.h"

class CBCGPToolbarMenuButton;
class CCustomizeButton;
class CBCGPRegistry;

//-----------------------------------------------
// CBCGPToolbar LoadBitmap/LoadToolbar parameters:
//-----------------------------------------------
class BCGCBPRODLLEXPORT CBCGPToolBarParams
{
public:
	CBCGPToolBarParams();

	UINT	m_uiColdResID;			// Toolbar regular images
	UINT	m_uiHotResID;			// Toolbar "hot" images
	UINT	m_uiDisabledResID;		// Toolbar disabled images
	UINT	m_uiLargeColdResID;		// Toolbar large regular images
	UINT	m_uiLargeHotResID;		// Toolbar large "hot" images
	UINT	m_uiLargeDisabledResID;	// Toolbar large disabled images
	UINT	m_uiMenuResID;			// Menu images
	UINT	m_uiMenuDisabledResID;	// Menu disabled images
};

//----------------------------------
// BCGPToolbar notification messages:
//----------------------------------
BCGCBPRODLLEXPORT extern UINT BCGM_TOOLBARMENU;
BCGCBPRODLLEXPORT extern UINT BCGM_CUSTOMIZETOOLBAR;
BCGCBPRODLLEXPORT extern UINT BCGM_CREATETOOLBAR;
BCGCBPRODLLEXPORT extern UINT BCGM_DELETETOOLBAR;
BCGCBPRODLLEXPORT extern UINT BCGM_CUSTOMIZEHELP;
BCGCBPRODLLEXPORT extern UINT BCGM_RESETTOOLBAR;
BCGCBPRODLLEXPORT extern UINT BCGM_RESETMENU;
BCGCBPRODLLEXPORT extern UINT BCGM_SHOWREGULARMENU;
BCGCBPRODLLEXPORT extern UINT BCGM_RESETCONTEXTMENU;
BCGCBPRODLLEXPORT extern UINT BCGM_RESETKEYBOARD;
BCGCBPRODLLEXPORT extern UINT BCGM_RESETRPROMPT;

#define LINE_OFFSET			5

class BCGCBPRODLLEXPORT CBCGPToolBar : public CBCGPBaseToolBar
{
	friend class CBCGPToolbarDropTarget;
	friend class CBCGPToolbarsPage;
	friend class CBCGPOptionsPage;
	friend class CButtonsTextList;
	friend class CBCGPCommandManager;

	DECLARE_SERIAL(CBCGPToolBar)

	//--------------
	// Construction:
	//--------------
public:
	CBCGPToolBar();
	virtual BOOL Create(CWnd* pParentWnd,
			DWORD dwStyle = dwDefaultToolbarStyle,
			UINT nID = AFX_IDW_TOOLBAR);
	virtual BOOL CreateEx(CWnd* pParentWnd, DWORD dwCtrlStyle = TBSTYLE_FLAT,
		DWORD dwStyle = dwDefaultToolbarStyle,
		CRect rcBorders = CRect(1, 1, 1, 1),
		UINT nID = AFX_IDW_TOOLBAR);

	//----------------------------------------------------------------
	// Set toolbar buttons image resources.
	// You should use SINGLE CBCGPToolBarImages for ALL your toolbars!
	//----------------------------------------------------------------
	static BOOL SetUserImages (CBCGPToolBarImages* pUserImages);

	virtual void ResetImages ();	// Reset all toolbar images exept user-derfined to the default

	//------------------------------
	// Clear all images except user:
	//------------------------------
	static void ResetAllImages();

	//--------------------------------
	// Dimension manipulation methods:
	//--------------------------------
	static void SetSizes (SIZE sizeButton, SIZE sizeImage);
	static void SetMenuSizes (SIZE sizeButton, SIZE sizeImage);
	static CSize GetMenuImageSize ();
	static CSize GetMenuButtonSize ();

	void SetLockedSizes (SIZE sizeButton, SIZE sizeImage);
	void SetHeight (int cyHeight);

	//-----------------
	// Toolbar context:
	//-----------------
	virtual BOOL LoadBitmap (UINT uiResID, UINT uiColdResID = 0, 
					UINT uiMenuResID = 0, BOOL bLocked = FALSE,
					UINT uiDisabledResID = 0, UINT uiMenuDisabledResID = 0);
	virtual BOOL LoadToolBar (UINT uiResID, UINT uiColdResID = 0, 
					UINT uiMenuResID = 0, BOOL bLocked = FALSE,
					UINT uiDisabledResID = 0, UINT uiMenuDisabledResID = 0,
  				    UINT uiHotResID = 0);
	virtual BOOL LoadBitmapEx (CBCGPToolBarParams& params, BOOL bLocked = FALSE);
	virtual BOOL LoadToolBarEx (UINT uiToolbarResID, CBCGPToolBarParams& params, 
								BOOL bLocked = FALSE);

	//----------------------------
	// Toolbar buttons add/remove:
	//----------------------------
	BOOL SetButtons(const UINT* lpIDArray, int nIDCount, BOOL bRemapImages = TRUE);

	virtual int InsertButton (const CBCGPToolbarButton& button, int iInsertAt = -1);
	int InsertSeparator (int iInsertAt = -1);

	int ReplaceButton (UINT uiCmd, const CBCGPToolbarButton& button, BOOL bAll = FALSE);
	
	virtual BOOL RemoveButton (int iIndex);
	virtual void RemoveAllButtons ();

	static BOOL IsLastCommandFromButton (CBCGPToolbarButton* pButton);
	static BOOL AddToolBarForImageCollection (UINT uiResID, UINT uiBmpResID = 0,
									UINT uiColdResID = 0, UINT uiMenuResID = 0,
									UINT uiDisabledResID = 0, UINT uiMenuDisabledResID = 0);

	static void SetNonPermittedCommands (CList<UINT, UINT>& lstCommands);
	static BOOL IsCommandPermitted (UINT uiCmd)
	{
		return m_lstUnpermittedCommands.Find (uiCmd) == NULL;
	}

	static void SetBasicCommands (CList<UINT, UINT>& lstCommands);
	static void AddBasicCommand (UINT uiCmd);
	
	static BOOL IsBasicCommand (UINT uiCmd)
	{
		return m_lstBasicCommands.Find (uiCmd) != NULL;
	}

	static const CList<UINT, UINT>& GetBasicCommands ()
	{
		return m_lstBasicCommands;
	}

	static BOOL IsCommandRarelyUsed (UINT uiCmd);

	static void AddCommandUsage (UINT uiCommand);
	static BOOL SetCommandUsageOptions (UINT nStartCount, UINT nMinUsagePercentage = 5);

	virtual int GetRowHeight () const
	{
		if (m_bDrawTextLabels)
		{
			ASSERT (m_nMaxBtnHeight > 0);
			return m_nMaxBtnHeight;
		}

		return max (globalData.GetTextHeight (m_dwStyle & CBRS_ORIENT_HORZ),
			(m_bMenuMode ?
			(m_sizeMenuButton.cy > 0 ?
				m_sizeMenuButton.cy : m_sizeButton.cy) :
			GetButtonSize ().cy));
	}

	virtual int GetColumnWidth () const
	{
		return m_bMenuMode ?
			m_sizeMenuButton.cx > 0 ?
				m_sizeMenuButton.cx : m_sizeButton.cx :
			GetButtonSize ().cx;
	}

	virtual BOOL IsButtonExtraSizeAvailable () const
	{
		return TRUE;
	}

	static void SetHelpMode (BOOL bOn = TRUE);
	virtual void Deactivate ();
	virtual void RestoreFocus ();

	void SetToolBarBtnText (UINT nBtnIndex,
							LPCTSTR szText = NULL,
							BOOL bShowText = TRUE,
							BOOL bShowImage = TRUE);


	void EnableLargeIcons (BOOL bEnable);

	static void SetLargeIcons (BOOL bLargeIcons = TRUE);
	static BOOL IsLargeIcons ()
	{
		return m_bLargeIcons;
	}

	CSize GetButtonSize () const
	{
		CSize size = m_bLocked ?
			m_bLargeIconsAreEnbaled ? m_sizeCurButtonLocked : m_sizeButtonLocked :
			m_bLargeIconsAreEnbaled ? m_sizeCurButton : m_sizeButton;
		
		if (IsButtonExtraSizeAvailable ())
		{
			size += CBCGPVisualManager::GetInstance ()->GetButtonExtraBorder ();
		}

		return size;
	}

	CSize GetImageSize () const
	{
		return m_bLocked ?
			m_bLargeIconsAreEnbaled ? m_sizeCurImageLocked : m_sizeImageLocked :
			m_bLargeIconsAreEnbaled ? m_sizeCurImage : m_sizeImage;
	}

	BOOL IsButtonHighlighted (int iButton) const;

	//------------
	// Attributes:
	//------------
public: 
	BOOL IsLocked () const
	{
		return m_bLocked;
	}

	UINT GetResourceID () const
	{
		return m_uiOriginalResID;
	}

	virtual BOOL IsResourceChanged () const
	{
		return m_bResourceWasChanged;
	}

	static const CObList& GetAllToolbars ();

	// standard control bar things
	int CommandToIndex(UINT nIDFind, int iIndexFirst = 0) const;
	UINT GetItemID(int nIndex) const;
	
	virtual void GetItemRect(int nIndex, LPRECT lpRect) const;
	virtual void GetInvalidateItemRect(int nIndex, LPRECT lpRect) const;

	UINT GetButtonStyle(int nIndex) const;
	virtual void SetButtonStyle(int nIndex, UINT nStyle);

	int GetCount () const;
	int ButtonToIndex(const CBCGPToolbarButton* pButton) const;
	CBCGPToolbarButton* GetButton (int iIndex) const;

	const CObList& GetAllButtons() const { return m_Buttons; }
	const CObList& GetOrigButtons() const { return m_OrigButtons; }
	const CObList& GetOrigResetButtons() const { return m_OrigResetButtons; }

	// Find all buttons specified by the given command ID from the all
	// toolbars:
	static int GetCommandButtons (UINT uiCmd, CObList& listButtons);
	
	static BOOL SetCustomizeMode (BOOL bSet = TRUE);
	static BOOL IsCustomizeMode ()
	{
		return m_bCustomizeMode;
	}

	BOOL IsUserDefined () const;

	static CBCGPToolBar* FromHandlePermanent (HWND hwnd);
	static CBCGPToolBarImages* GetImages ()
	{
		return &m_Images;
	}
	static CBCGPToolBarImages* GetUserImages ()
	{
		return m_pUserImages;
	}

	static int GetDefaultImage (UINT uiID)
	{
		int iImage;
		if (m_DefaultImages.Lookup (uiID, iImage))
		{
			return iImage;
		}

		return -1;
	}

	int GetImagesOffset () const
	{
		return m_iImagesOffset;
	}

	CBCGPToolbarButton* GetHighlightedButton () const;

	static void SetHotTextColor (COLORREF clrText);
	static COLORREF GetHotTextColor ();

	void SetHotBorder (BOOL bShowHotBorder)
	{
		m_bShowHotBorder = bShowHotBorder;
	}

	BOOL GetHotBorder () const
	{
		return m_bShowHotBorder;
	}

	void SetGrayDisabledButtons (BOOL bGrayDisabledButtons)
	{
		m_bGrayDisabledButtons = bGrayDisabledButtons;
	}

	BOOL GetGrayDisabledButtons () const
	{
		return m_bGrayDisabledButtons;
	}

	//------------------------------------------------------
	// Enable/disable quick customization mode ("Alt+drag"):
	//------------------------------------------------------
	static void EnableQuickCustomization (BOOL bEnable = TRUE)
	{
		m_bAltCustomization = bEnable;
	}

	static void SetLook2000 (BOOL bLook2000 = TRUE);
	static BOOL IsLook2000 ();

	virtual void EnableDocking (DWORD dwAlignment); 
	
	void EnableCustomizeButton (BOOL bEnable, UINT uiCustomizeCmd, const CString& strCustomizeText, BOOL bQuickCustomize = TRUE);
	void EnableCustomizeButton (BOOL bEnable, UINT uiCustomizeCmd, UINT uiCustomizeTextResId, BOOL bQuickCustomize = TRUE);

	BOOL IsExistCustomizeButton()
	{
		if(m_pCustomizeBtn == NULL)
		{
			return FALSE;
		}
		return TRUE;
	}

	CCustomizeButton* GetCustomizeButton()
	{
		return m_pCustomizeBtn;
	}

	void EnableTextLabels (BOOL bEnable = TRUE);

	virtual BOOL AllowChangeTextLabels () const
	{
		return TRUE;
	}

	BOOL AreTextLabels () const
	{
		return m_bTextLabels;
	}

	virtual BOOL OnBeforeRemoveButton (CBCGPToolbarButton* /*pButton*/, DROPEFFECT /*dropEffect*/)
	{
		return TRUE;
	}

	void SetMaskMode (BOOL bMasked)
	{
		m_bMasked = bMasked;
	}

	void SetPermament (BOOL bPermament = TRUE)
	{
		m_bPermament = bPermament;

⌨️ 快捷键说明

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