📄 extpaintmanager.h
字号:
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 + -