ToolbarXP.h
上传用户:ckg1000
上传日期:2013-01-26
资源大小:630k
文件大小:2k
源码类别:

CAD

开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // ToolBarXP.h: definition of the CToolBarXP class.
  4. //
  5. ///////////////////////////////////////////////////////////////////////////////
  6. #pragma once
  7. ///////////////////////////////////////////////////////////////////////////////
  8. class CToolBarXP : public CToolBar
  9. {
  10. public:
  11.     CToolBarXP ();
  12. // Operations
  13. public:
  14. BOOL LoadToolBar (UINT nIDResource);
  15.     bool InsertControl (int nIndex, CWnd& Ctrl);
  16.     void TrackPopupMenu (int nID, CMenu* pMenu);
  17. // Implementation
  18. protected:
  19.     // Use the BYTE type because we need 3 states (not a boolean !)
  20.     BYTE m_bCheckVisibility;
  21. protected:
  22.     // ClassWizard generated virtual function overrides
  23.     //{{AFX_VIRTUAL(CToolBarXP)
  24.     virtual LRESULT DefWindowProc (UINT nMsg, WPARAM wParam, LPARAM lParam);
  25.     virtual CSize CalcDynamicLayout (int nLength, DWORD nMode);
  26.     //}}AFX_VIRTUAL
  27.     // Message Handlers
  28. protected:
  29.     //{{AFX_MSG(CToolBarXP)
  30.     afx_msg void OnPaint();
  31.     afx_msg void OnButtonDropDown(NMHDR*, LRESULT*);
  32.     //}}AFX_MSG
  33.     DECLARE_MESSAGE_MAP();
  34.     DECLARE_DYNAMIC(CToolBarXP);
  35. };
  36. #define DROPDOWN(item) ((WORD)-item)
  37. #define IS_STDBTN(button)        (((button).fsStyle&(TBSTYLE_SEP|TBSTYLE_CHECKGROUP))==TBSTYLE_BUTTON)
  38. #define IS_CHECKBTN(button)      (((button).fsStyle&(TBSTYLE_SEP|TBSTYLE_CHECKGROUP))==TBSTYLE_CHECK)
  39. #define IS_GROUPBTN(button)      (((button).fsStyle&(TBSTYLE_SEP|TBSTYLE_CHECKGROUP))==TBSTYLE_CHECKGROUP)
  40. #define IS_DROPDOWN(button)      (((button).fsStyle&TBSTYLE_DROPDOWN)==TBSTYLE_DROPDOWN)
  41. #define IS_SEPARATOR(button)     (((button).fsStyle&TBSTYLE_SEP)&&((button).idCommand==0))
  42. #define IS_CONTROL(button)       (((button).fsStyle&TBSTYLE_SEP)&&((button).idCommand!=0))
  43. #define IS_CHECKED(button)       (((button).fsState&TBSTATE_CHECKED)==TBSTATE_CHECKED)
  44. #define IS_ENABLED(button)       (((button).fsState&TBSTATE_ENABLED)==TBSTATE_ENABLED)
  45. #define IS_INDETERMINATE(button) (((button).fsState&TBSTATE_INDETERMINATE)==TBSTATE_INDETERMINATE)
  46. #define IS_PRESSED(button)       (((button).fsState&TBSTATE_ENABLED)==TBSTATE_PRESSED)
  47. #define IS_VISIBLE(button)       (((button).fsState&TBSTATE_HIDDEN)==0)
  48. #define IS_WRAP(button)          (((button).fsState&TBSTATE_WRAP)==TBSTATE_WRAP)
  49. ///////////////////////////////////////////////////////////////////////////////
  50. //{{AFX_INSERT_LOCATION}}
  51. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.