XTPCustomizeTools.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPCustomizeTools.h
  2. //
  3. // This file is a part of the XTREME COMMANDBARS MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPCUSTOMIZETOOLS_H__)
  22. #define __XTPCUSTOMIZETOOLS_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. class CXTPCommandBar;
  28. class CXTPCommandBars;
  29. class CXTPControl;
  30. class CXTPCustomizeSheet;
  31. //{{AFX_CODEJOCK_PRIVATE
  32. #define DROPEFFECT_CANCEL   (5)
  33. //===========================================================================
  34. // Summary:
  35. //     Internal helper class for customization
  36. //===========================================================================
  37. class _XTP_EXT_CLASS CXTPCustomizeDropSource
  38. {
  39. public:
  40. //-------------------------------------------------------------------------
  41. // Summary:
  42. //     Constructs a CXTPCustomizeDropSource object.
  43. // Parameters:
  44. //     pCommandBars - Pointer to a CommandBars object.
  45. //-------------------------------------------------------------------------
  46. CXTPCustomizeDropSource(CXTPCommandBars* pCommandBars);
  47. //-------------------------------------------------------------------------
  48. // Summary:
  49. //     Destroys a CXTPCustomizeDropSource object, handles cleanup and deallocation.
  50. //-------------------------------------------------------------------------
  51. ~CXTPCustomizeDropSource();
  52. public:
  53. DROPEFFECT DoDragDrop(CXTPControl* pControl, BOOL bCopyOnly = FALSE);
  54. void Register(CXTPCommandBar* pCommandBar);
  55. void UnRegister(CXTPCommandBar* pCommandBar);
  56. CXTPCustomizeSheet* GetSheet() const;
  57. private:
  58. DROPEFFECT _DoDragDrop();
  59. void PickTarget(CPoint ptCursor);
  60. void FreshenCursor();
  61. private:
  62. HWND m_hwndCapture;
  63. CXTPControl* m_pControl;
  64. BOOL m_bMove;
  65. BOOL m_bCopyOnly;
  66. CXTPCommandBar* m_pTarget;
  67. CXTPCustomizeSheet* m_pSheet;
  68. CPoint m_ptStart;
  69. CArray<CXTPCommandBar*, CXTPCommandBar*> m_arrTargets;
  70. CXTPCommandBars* m_pCommandBars;
  71. HCURSOR m_hcurDelete;
  72. HCURSOR m_hcurMove;
  73. HCURSOR m_hcurCopy;
  74. friend class CXTPCustomizeSheet;
  75. friend class CXTPCommandBars;
  76. };
  77. //}}AFX_CODEJOCK_PRIVATE
  78. //===========================================================================
  79. // Summary:
  80. //     CXTPNewToolbarDlg is CDialog derived class. It used internally in customization sheet.
  81. //===========================================================================
  82. class _XTP_EXT_CLASS CXTPNewToolbarDlg : public CDialog
  83. {
  84. public:
  85. //-------------------------------------------------------------------------
  86. // Summary:
  87. //     Constructs a CXTPNewToolbarDlg object.
  88. // Parameters:
  89. //     pParent - Points to the objects parent window.
  90. //     pCommandBars - Pointer to a CXTPCommandBars object.
  91. //     pCommandBar - Pointer to a CXTPCommandBar need to edit.
  92. //-------------------------------------------------------------------------
  93. CXTPNewToolbarDlg(CWnd* pParent, CXTPCommandBars* pCommandBars, CXTPCommandBar* pCommandBar = NULL);
  94. private:
  95. void SetSuggestedName();
  96. protected:
  97. //{{AFX_CODEJOCK_PRIVATE
  98. DECLARE_MESSAGE_MAP()
  99. //{{AFX_VIRTUAL(CXTPNewToolbarDlg)
  100. virtual void DoDataExchange(CDataExchange* pDX);
  101. virtual BOOL OnInitDialog();
  102. void OnOK();
  103. //}}AFX_VIRTUAL
  104. //{{AFX_MSG(CXTPNewToolbarDlg)
  105. //}}AFX_MSG
  106. //}}AFX_CODEJOCK_PRIVATE
  107. public:
  108. enum
  109. {
  110. IDD = XTP_IDD_NEWTOOLBAR        // Dialog identifier
  111. };
  112. UINT m_nNewID;                      // Toolbar identifier
  113. CString m_strToolbar;               // Caption of toolbar
  114. CXTPCommandBar* m_pCommandBar;      // CommandBar to edit
  115. CXTPCommandBars* m_pCommandBars;    // CommandBars class.
  116. };
  117. #endif // #define __XTPCUSTOMIZETOOLS_H__