extoolbar.h
来自「c++系统开发实例精粹内附的80例源代码 环境:windows2000,c++」· C头文件 代码 · 共 200 行
H
200 行
//////////////////////////////////////////////////////////////////////
// FileFury
// Copyright (c) 2000 Tenebril Incorporated
// All rights reserved.
//
// This source code is governed by the Tenebril open source
// license (http://www.tenebril.com/developers/opensource/license.html)
//
// For more information on this and other open source applications,
// visit the Tenebril OpenSource page:
// http://www.tenebril.com/developers/opensource
//
//////////////////////////////////////////////////////////////////////
#if !defined( _OOExToolBar_H_ )
#define _OOExToolBar_H_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#ifndef TB_SETEXTENDEDSTYLE
#define TB_SETEXTENDEDSTYLE (WM_USER + 84)
#define TBSTYLE_EX_DRAWDDARROWS 0x00000001
#endif
#define NB_POSSIBLE_MODE 6
class CExToolBar : public CToolBar
{
DECLARE_DYNAMIC( CExToolBar )
private:
public:
enum ImageMode_ { SmallHot, SmallStandard, SmallDisable,
LargeHot, LargeStandard, LargeDisable };
protected:
private:
bool m_bOldFloating;
public:
protected:
UINT m_nShowIconMode;
bool m_bShowIconText;
int m_nDropButtonSize;
int m_nTextHeight;
int m_nTextWidth;
CSize m_SmallIconSize;
CSize m_LargeIconSize;
CImageList m_ImageList[ NB_POSSIBLE_MODE ];
private:
CSize CalcButtonSize( void );
public:
CExToolBar( void );
~CExToolBar( void );
void SizeToolBar(TBBUTTON* pData, int nCount, int nLength, BOOL bVert = FALSE);
void GetButton(int nIndex, TBBUTTON* pButton) const;
void SetButton(int nIndex, TBBUTTON* pButton);
int WrapToolBar(TBBUTTON* pData, int nCount, int nWidth);
CSize CalcSize(TBBUTTON* pData, int nCount);
CSize CalcLayout(DWORD nMode, int nLength = -1);
protected:
void DrawGripper( CDC& dc ) const;
void SetDisableImageList( CImageList* pList );
void SetHotImageList( CImageList* pList );
void SetStandardImageList( CImageList* pList );
virtual void AssignImageList( void );
private:
public:
void ResizeToolBar( void );
virtual BOOL LoadToolBar( UINT _ResourceId );
void SetImageList( ImageMode_ _ImageMode, CImageList& _rList );
virtual void InitImageList( void );
void SetIconMode( UINT _nShowIconMode );
UINT GetIconMode( void ) const;
void SetTextMode( bool _bShowIconText );
bool GetTextMode( void ) const;
void SetButtonDropDown( int nID );
protected:
public:
BOOL SetButtonText(int nIndex, LPCTSTR lpszText);
virtual CSize CalcDynamicLayout(int nLength, DWORD dwMode);
virtual CSize GetButtonSize(TBBUTTON* pData, int iButton);
virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
protected:
virtual void OnUpdateCmdUI( CFrameWnd* pTarget, BOOL bDisableIfNoHndler );
protected:
afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
afx_msg void OnNcCalcSize( BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp );
afx_msg void OnNcPaint( void );
afx_msg void OnSysColorChange( void );
afx_msg void OnWindowPosChanging( WINDOWPOS* lpwndpos );
DECLARE_MESSAGE_MAP()
};
class CToolBarCmdUI : public CCmdUI
{
public:
virtual void Enable( BOOL bOn );
virtual void SetCheck( int nCheck );
};
class CBmpToolBar : public CExToolBar
{
DECLARE_DYNAMIC( CBmpToolBar )
private:
public:
class CExBitmap
{
public:
UINT m_nResourceId;
COLORREF m_clrTransparent;
};
protected:
private:
CExBitmap m_256Image[ NB_POSSIBLE_MODE ];
CExBitmap m_16Image[ NB_POSSIBLE_MODE ];
public:
protected:
private:
void BuildImageList( CImageList& _rImageList, const CExBitmap& _rBitmap );
public:
CBmpToolBar( void );
~CBmpToolBar( void );
protected:
private:
public:
void SetBitmap( UINT _nBmpId, ImageMode_ _ImageMode, COLORREF _clrBk, bool _b256 = true );
virtual void InitImageList( void );
protected:
public:
protected:
protected:
DECLARE_MESSAGE_MAP()
};
class CIconToolBar : public CExToolBar
{
DECLARE_DYNAMIC( CIconToolBar )
private:
public:
protected:
private:
public:
protected:
private:
HICON ConvertIconToGrayScale( HICON _hIcon, CSize _sizeImage );
public:
CIconToolBar( void );
~CIconToolBar( void );
protected:
private:
public:
void SetIcon( UINT _nStandardIcon, UINT _nDisableIcon = 0, UINT _nHotIcon = 0 );
protected:
public:
protected:
protected:
DECLARE_MESSAGE_MAP()
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?