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

📄 extpaintmanager.h

📁 FormEditor,模拟Visual Basic窗口编辑界面
💻 H
📖 第 1 页 / 共 2 页
字号:

	static void stat_PaintGradientRect(
		CDC & dc,
		const CRect & rcPaintGradient,
		COLORREF clrLeft,
		COLORREF clrRight,
		bool bHorz = false,
		UINT nCountOfSteps = 256
		);

	static void stat_PaintDotNet3dRect(
		CDC & dc,
		LPCRECT lpRect,
		COLORREF clrTopLeft,
		COLORREF clrBottomRight
		);
	static void stat_PaintDotNet3dRect(
		CDC & dc,
		int x,
		int y,
		int cx,
		int cy,
		COLORREF clrTopLeft,
		COLORREF clrBottomRight
		);

	static void stat_PaintRadioDot(
		CDC & dc,
		int x,
		int y,
		COLORREF color
		);

	static void stat_PaintCheckMark(
		CDC & dc,
		int x,
		int y,
		COLORREF color
		);

	static void stat_PaintTabItemImpl(
		CDC & dc,
		CRect & rcTabItemsArea,
		bool bTopLeft,
		bool bHorz,
		bool bSelected,
		bool bCenteredText,
		bool bGroupedMode,
		bool bInGroupActive,
		bool bInvertedVerticalMode,
		const CRect & rcEntireItem,
		CSize sizeTextMeasured,
		CFont * pFont,
		LPCTSTR sText,
		HICON hIcon,
		COLORREF clrText,
		COLORREF clrTabBk,
		COLORREF clrTabBorderLT,
		COLORREF clrTabBorderRB,
		COLORREF clrTabSeparator
		);

	static void stat_PaintTabButtonImpl(
		CDC & dc,
		CRect & rcButton,
		LONG nHitTest,
		bool bTopLeft,
		bool bHorz,
		bool bEnabled,
		bool bHover,
		bool bPushed,
		bool bGroupedMode,
		COLORREF clrGlyph,
		COLORREF clrTL,
		COLORREF clrBR
		);

	static void stat_PaintTabClientAreaImpl(
		CDC & dc,
		CRect & rcClient,
		CRect & rcTabItemsArea,
		CRect & rcTabNearBorderArea,
		DWORD dwOrientation,
		bool bGroupedMode,
		COLORREF clrTabItemsAreaBk,
		COLORREF clrTabNearBorderAreaBk,
		COLORREF clrTabNearMargine
		);

	virtual void PaintTabItem(
		CDC & dc,
		CRect & rcTabItemsArea,
		bool bTopLeft,
		bool bHorz,
		bool bSelected,
		bool bCenteredText,
		bool bGroupedMode,
		bool bInGroupActive,
		bool bInvertedVerticalMode,
		const CRect & rcEntireItem,
		CSize sizeTextMeasured,
		CFont * pFont,
		LPCTSTR sText,
		HICON hIcon
		);

	virtual void PaintTabClientArea(
		CDC & dc,
		CRect & rcClient,
		CRect & rcTabItemsArea,
		CRect & rcTabNearBorderArea,
		DWORD dwOrientation,
		bool bGroupedMode
		);
	
	virtual void PaintTabButton(
		CDC & dc,
		CRect & rcButton,
		LONG nHitTest,
		bool bTopLeft,
		bool bHorz,
		bool bEnabled,
		bool bHover,
		bool bPushed,
		bool bGroupedMode
		);

	virtual void PaintTabNcAreaRect(
		CDC & dc,
		const CRect & rc
		);
	
	virtual void PaintResizableBarChildNcAreaRect(
		CDC & dc,
		const CRect & rc
		);

	static CRect stat_CalcTextDimension(
		CDC & dc,
		CFont & font,
		const CString & strText
		);
	static int stat_CalcTextWidth(
		CDC & dc,
		CFont & font,
		const CString & strText
		);

	// paint methods

	virtual void PaintIcon(
		CDC & dc,
		bool bHorz,
		CString & sTitle,
		HICON hIcon,
		const CRect & rectItem,
		CRect & rectCaption,
		bool bPushed,
		bool bEnabled,
		bool bHover,
		int eAlign
		);

	enum e_docking_caption_button_t
	{
		__DCBT_EMPTY			= 0,
		__DCBT_CLOSE			= 1,
		__DCBT_ARROW_UP			= 2,
		__DCBT_ARROW_DOWN		= 3,
		__DCBT_ARROW_LEFT		= 4,
		__DCBT_ARROW_RIGHT		= 5,
		__DCBT_WND_MINIMIZE		= 6,
		__DCBT_WND_RESTORE		= 7,
		__DCBT_WND_MAXIMIZE		= 8,
		__DCBT_WND_CONTEXTHELP	= 9,
		__DCBT_WND_KEEP			= 10,
		__DCBT_WND_UNKEEP		= 11,
		__DCBT_ARROW_UP_L		= 12,
		__DCBT_ARROW_DOWN_L		= 13,
		__DCBT_ARROW_LEFT_L		= 14,
		__DCBT_ARROW_RIGHT_L	= 15,
		__DCBT_XP_THIN_CLOSE	= 16,
		__DCBT_HOLLOW_UP		= 17,
		__DCBT_HOLLOW_DOWN		= 18,
		__DCBT_HOLLOW_LEFT		= 19,
		__DCBT_HOLLOW_RIGHT		= 20,
		__DCBT_CLOSE_DC2K		= 21,

		__DCBT_VALUE_MIN		= 0,
		__DCBT_VALUE_MAX		= 21,
	};
	
	static glyph_t * g_DockingCaptionGlyphs[__DCBT_VALUE_MAX+1];

	virtual void PaintDockingCaptionButton(
		CDC & dc,
		const CRect & rectClient,
		e_docking_caption_button_t eType,
		bool bHover,
		bool bPushed,
		bool bEnabled,
		bool bSideBar,
		bool bBarWndActive,
		bool bFloating
		);

	virtual void PaintSysCmdGlyph(
		CDC & dc,
		UINT nHelperSysCmdID,
		const CRect & rcItem,
		bool bHover,
		bool bPushed,
		bool bEnabled
		);

	virtual void PaintPushButton(
		CDC & dc,
		bool bHorz,
		const CRect & rectClient,
		LPCTSTR sText,
		HICON hIcon,
		bool bFlat,
		bool bHover,
		bool bPushed,
		bool bIndeterminate,
		bool bEnabled,
		bool bDrawBorder,
		bool bDrawFocusRect,
		bool bDefaultPushButton,
		int eAlign,
		CFont * pFont = NULL,
		bool bDropDown = false,
		UINT nHelperSysCmdID = 0,
		bool bTransparentBackground = false
		);

	virtual void PaintMenuItem(
		CDC & dc,
		const CRect & rectItem,
		LPCTSTR sText,
		LPCTSTR sAccelText,
		HICON hIcon,
		bool bPopup,
		bool bSelected,
		bool bPushedCheck,
		bool bPushedRadio,
		bool bIndeterminate,
		bool bEnabled,
		bool bRarelyUsed,
		bool bRarelyUsedPrev,
		bool bRarelyUsedNext,
		UINT nHelperSysCmdID // for painting system menu glyphs
		);
	virtual void PaintMenuSeparator(
		CDC & dc,
		CRect & rectItem,
		bool bRarelyUsed
		);

	virtual void PaintSeparator(
		CDC & dc,
		CRect & rectItem,
		bool bHorz
		);

	virtual void PaintGripper(
		CDC & dc,
		const CRect & rectGripper,
		const CRect & rectText,
		bool bActive,
		bool bFloating,
		bool bHorz,
		bool bSideBar = false,
		LPCTSTR sCaption = NULL
		);

	virtual void PaintDockingFrame(
		CDC & dc,
		const CRect & rectWindow,
		const CRect & rectClient,
		bool bFloating,
		bool bExtBar,
		bool bSideBar = false
		);

	virtual void PaintControlFrame(
		CDC & dc,
		CRect & rectClient,
		bool bFlat,
		bool bHover,
		bool bEnabled,
		bool bFocus
		);

	virtual void PaintComboFrame(
		CDC &dc,
		CRect & rectClient,
		bool bHover,
		bool bPushed,
		bool bEnabled
		);

	static bool stat_DefIsHwndNeedsDirectRepaint(
		HWND hWndChild
		);
	static bool stat_DefExcludeChildAreaCallback(
		HDC hDC,
		HWND hWnd,
		HWND hWndChild,
		LPVOID pCookie
		);

	static int stat_GetBPP();

	CSize GetTextSizes(bool bBold = false);
	virtual int GetTextHeight(bool bHorz);

	virtual int GetMenuShadowSize();
	virtual int GetMenuBorderSize();
	virtual void PaintMenuBorder(
		CDC & dc,
		const CRect & rectClient
		);

	virtual bool IsMenuMustCombineExcludeArea();
	virtual void PaintMenuCombinedArea(
		CDC & dc,
		const CRect & rcArea,
		const CRect & rcClient,
		int eCombineAlign // CExtPopupMenuWnd::e_combine_align_t values
		);

	enum e_control_bar_border_type_t
	{
		__CB_OUTER_DOCKBAR = 0,
		__CB_OUTER_STATUSBAR = 1,
		__CB_INNER_STATUSBAR_ITEM = 2,
	};
	
	void PaintControlBarBordersDefImpl(
		e_control_bar_border_type_t eCBBT,
		DWORD dwStyle,
		CDC & dc,
		CRect & rc,
		COLORREF clrHi,
		COLORREF clrLo
		);

	virtual void PaintControlBarBorders(
		e_control_bar_border_type_t eCBBT,
		DWORD dwStyle,
		CDC & dc,
		CRect & rc
		);

	virtual void PaintDockBarClientArea(
		CDC & dc,
		const CRect & rcClient
		);

}; // class CExtPaintManager

class   CExtPaintManagerXP : public CExtPaintManager
{
public:
	DECLARE_DYNAMIC( CExtPaintManagerXP )
private:
	// install required translated color as
	// described in e_translated_colors_t enumeration
	virtual void InitTranslatedColors();

	// gets the pushed metic offset
	virtual CSize GetPushedOffset();

	// paint methods

	virtual void PaintPushButton(
		CDC & dc,
		bool bHorz,
		const CRect & rectClient,
		LPCTSTR sText,
		HICON hIcon,
		bool bFlat,
		bool bHover,
		bool bPushed,
		bool bEnabled,
		bool bIndeterminate,
		bool bDrawBorder,
		bool bDrawFocusRect,
		bool bDefaultPushButton,
		int eAlign,
		CFont * pFont = NULL,
		bool bDropDown = false,
		UINT nHelperSysCmdID = 0,
		bool bTransparentBackground = false
		);

	virtual void PaintGripper(
		CDC & dc,
		const CRect & rectGripper,
		const CRect & rectText,
		bool bActive,
		bool bFloating,
		bool bHorz,
		bool bSideBar = false,
		LPCTSTR sCaption = NULL
		);

	virtual void PaintSeparator(
		CDC & dc,
		CRect & rectItem,
		bool bHorz
		);

	virtual void PaintIcon(
		CDC & dc,
		bool bHorz,
		CString & sTitle,
		HICON hIcon,
		const CRect & rectItem,
		CRect & rectCaption,
		bool bPushed,
		bool bEnabled,
		bool bHover,
		int eAlign
		);

	virtual void PaintMenuItem(
		CDC & dc,
		const CRect & rectItem,
		LPCTSTR sText,
		LPCTSTR sAccelText,
		HICON hIcon,
		bool bPopup,
		bool bSelected,
		bool bPushedCheck,
		bool bPushedRadio,
		bool bIndeterminate,
		bool bEnabled,
		bool bRarelyUsed,
		bool bRarelyUsedPrev,
		bool bRarelyUsedNext,
		UINT nHelperSysCmdID // for painting system menu glyphs
		);
	virtual void PaintMenuSeparator(
		CDC & dc,
		CRect & rectItem,
		bool bRarelyUsed
		);

	virtual void PaintControlFrame(
		CDC & dc,
		CRect & rectClient,
		bool bFlat,
		bool bHover,
		bool bEnabled,
		bool bFocus
		);

	virtual void PaintComboFrame(
		CDC &dc,
		CRect & rectClient,
		bool bHover,
		bool bPushed,
		bool bEnabled
		);

	virtual void PaintSysCmdGlyph(
		CDC & dc,
		UINT nHelperSysCmdID,
		const CRect & rcItem,
		bool bHover,
		bool bPushed,
		bool bEnabled
		);

	virtual void PaintToolbarExpandButton(
		CDC & dc,
		const CRect & rectButton,
		bool bHorz, // if false - down
		bool bBarIsCompletelyVisible,
		bool bEnabled,
		bool bPushed,
		bool bHover,
		bool bTransparentBackground = false
		);
	virtual void PaintMenuExpandButton(
		CDC & dc,
		const CRect & rectButton,
		bool bPushed,
		bool bHover
		);

	virtual void PaintDockingFrame(
		CDC & dc,
		const CRect & rectWindow,
		const CRect & rectClient,
		bool bFloating,
		bool bExtBar,
		bool bSideBar = false
		);

	virtual int GetMenuShadowSize();
	virtual int GetMenuBorderSize();

	virtual void PaintMenuBorder(
		CDC & dc,
		const CRect & rectClient
		);

public:
	enum e_xp_colors_t
	{
		XPCLR_3DFACE_DARK		= __ExtMfc_XP_COLOR_SHIFT+0,
		XPCLR_3DFACE_NORMAL		= __ExtMfc_XP_COLOR_SHIFT+1,
		XPCLR_SEPARATOR			= __ExtMfc_XP_COLOR_SHIFT+2,
		XPCLR_HILIGHT			= __ExtMfc_XP_COLOR_SHIFT+3,
		XPCLR_HILIGHT_BORDER	= __ExtMfc_XP_COLOR_SHIFT+4,
		XPCLR_RARELY_BORDER		= __ExtMfc_XP_COLOR_SHIFT+5,
	};

	virtual bool IsMenuMustCombineExcludeArea();
	virtual void PaintMenuCombinedArea(
		CDC & dc,
		const CRect & rcArea,
		const CRect & rcClient,
		int eCombineAlign // CExtPopupMenuWnd::e_combine_align_t values
		);

	virtual void PaintDockingCaptionButton(
		CDC & dc,
		const CRect & rectClient,
		e_docking_caption_button_t eType,
		bool bHover,
		bool bPushed,
		bool bEnabled,
		bool bSideBar,
		bool bBarWndActive,
		bool bFloating
		);
	virtual COLORREF GetMenuFrameFillColor()
	{
		return GetColor(XPCLR_3DFACE_NORMAL);
	};

	virtual void PaintControlBarBorders(
		e_control_bar_border_type_t eCBBT,
		DWORD dwStyle,
		CDC & dc,
		CRect & rc
		);

	virtual void PaintTabItem(
		CDC & dc,
		CRect & rcTabItemsArea,
		bool bTopLeft,
		bool bHorz,
		bool bSelected,
		bool bCenteredText,
		bool bGroupedMode,
		bool bInGroupActive,
		bool bInvertedVerticalMode,
		const CRect & rcEntireItem,
		CSize sizeTextMeasured,
		CFont * pFont,
		LPCTSTR sText,
		HICON hIcon
		);

	virtual void PaintTabClientArea(
		CDC & dc,
		CRect & rcClient,
		CRect & rcTabItemsArea,
		CRect & rcTabNearBorderArea,
		DWORD dwOrientation,
		bool bGroupedMode
		);

	virtual void PaintTabButton(
		CDC & dc,
		CRect & rcButton,
		LONG nHitTest,
		bool bTopLeft,
		bool bHorz,
		bool bEnabled,
		bool bHover,
		bool bPushed,
		bool bGroupedMode
		);

	virtual void PaintTabNcAreaRect(
		CDC & dc,
		const CRect & rc
		);

	virtual void PaintResizableBarChildNcAreaRect(
		CDC & dc,
		const CRect & rc
		);

	virtual void PaintDockBarClientArea(
		CDC & dc,
		const CRect & rcClient
		);
};

extern   CExtPaintManager::CExtPaintManagerAutoPtr g_PaintManager;

#endif // __EXT_PAINT_MANAGER_H

⌨️ 快捷键说明

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