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

对话框与窗口

开发平台:

Visual C++

  1. // XTShellListCtrlView.h : header file
  2. //
  3. // This file is a part of the XTREME CONTROLS 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(__XTSHELLLISTCTRLVIEW_H__)
  22. #define __XTSHELLLISTCTRLVIEW_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. DECLATE_SHELLLIST_BASE(CXTShellListViewBase, CXTListViewHelper, CXTShellListBase)
  28. DECLATE_SHELLLIST_BASE(CXTShellListCtrlBase, CXTListCtrlHelper, CXTShellListBase)
  29. //===========================================================================
  30. // Summary:
  31. //     CXTShellListView is a multiple inheritance class derived from CXTListView
  32. //     and CXTShellPidl. It is used to create a CXTShellListView class object.
  33. //===========================================================================
  34. class _XTP_EXT_CLASS CXTShellListView : public CXTShellListViewBase
  35. {
  36. DECLARE_DYNCREATE(CXTShellListView)
  37. public:
  38. //-----------------------------------------------------------------------
  39. // Summary:
  40. //     Constructs a CXTShellListView object
  41. //-----------------------------------------------------------------------
  42. CXTShellListView();
  43. //-----------------------------------------------------------------------
  44. // Summary:
  45. //     Destroys a CXTShellListView object, handles cleanup and deallocation
  46. //-----------------------------------------------------------------------
  47. virtual ~CXTShellListView();
  48. protected:
  49. //-----------------------------------------------------------------------
  50. // Summary:
  51. //     Occurs when the user double clicks on the list control.
  52. // Parameters:
  53. //     pNMHDR  - Address of an NMHDR structure that contains the notification
  54. //               code and additional information. For some notification messages,
  55. //               this parameter points to a larger structure that has the NMHDR
  56. //               structure as its first member.
  57. //     pResult - Pointer to an LRESULT variable in which to store the result
  58. //               code if the message is handled.
  59. //-----------------------------------------------------------------------
  60. void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
  61. protected:
  62. //{{AFX_CODEJOCK_PRIVATE
  63. DECLARE_MESSAGE_MAP()
  64. //{{AFX_VIRTUAL(CXTShellListView)
  65. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  66. virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  67. //}}AFX_VIRTUAL
  68. //{{AFX_MSG(CXTShellListView)
  69. afx_msg LRESULT OnUpdateShell(WPARAM wParam, LPARAM lParam);
  70. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  71. //}}AFX_MSG
  72. //}}AFX_CODEJOCK_PRIVATE
  73. };
  74. //===========================================================================
  75. // Summary:
  76. //     CXTShellListCtrl is a multiple inheritance class derived from CXTListCtrl
  77. //     and CXTShellPidl. It is used to create a CXTShellListCtrl window.
  78. //===========================================================================
  79. class _XTP_EXT_CLASS CXTShellListCtrl : public CXTShellListCtrlBase
  80. {
  81. public:
  82. //-----------------------------------------------------------------------
  83. // Summary:
  84. //     Constructs a CXTShellListCtrl object
  85. //-----------------------------------------------------------------------
  86. CXTShellListCtrl();
  87. //-----------------------------------------------------------------------
  88. // Summary:
  89. //     Destroys a CXTShellListCtrl object, handles cleanup and deallocation
  90. //-----------------------------------------------------------------------
  91. virtual ~CXTShellListCtrl();
  92. public:
  93. //-----------------------------------------------------------------------
  94. // Summary:
  95. //     Call this member function to associate the tree control with the list.
  96. // Parameters:
  97. //     pWnd - Points to the tree control that is associated with the list.
  98. //-----------------------------------------------------------------------
  99. virtual void AssociateTree(CWnd* pWnd);
  100. protected:
  101. //{{AFX_CODEJOCK_PRIVATE
  102. DECLARE_MESSAGE_MAP()
  103. //{{AFX_MSG(CXTShellListCtrl)
  104. afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
  105. afx_msg LRESULT OnUpdateShell(WPARAM wParam, LPARAM lParam);
  106. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  107. //}}AFX_MSG
  108. //}}AFX_CODEJOCK_PRIVATE
  109. protected:
  110. CWnd*               m_pTreeCtrl;    // Window that receives update notification, usually a CXTShellTreeCtrl.
  111. bool                m_bInitControl; // true if the control has not been initialized.
  112. };
  113. //{{AFX_CODEJOCK_PRIVATE
  114. #define CXTShellList CXTShellListCtrl
  115. //}}AFX_CODEJOCK_PRIVATE
  116. //////////////////////////////////////////////////////////////////////
  117. AFX_INLINE void CXTShellListCtrl::AssociateTree(CWnd* pWnd) {
  118. ASSERT_VALID(pWnd); m_pTreeCtrl = pWnd;
  119. }
  120. //===========================================================================
  121. // Summary:
  122. //     CXTShellListCtrlEx is a CXTShellListCtrl derived class. It is used to create
  123. //     a stand-alone shell list control that is not dependent on a CXTShellTreeCtrl
  124. //     for initialization. It is used to create a CXTShellListCtrlEx window for
  125. //     displaying the contents of file folders.
  126. //===========================================================================
  127. class _XTP_EXT_CLASS CXTShellListCtrlEx : public CXTShellListCtrl
  128. {
  129. public:
  130. //-----------------------------------------------------------------------
  131. // Summary:
  132. //     Constructs a CXTShellListCtrlEx object
  133. //-----------------------------------------------------------------------
  134. CXTShellListCtrlEx();
  135. //-----------------------------------------------------------------------
  136. // Summary:
  137. //     Destroys a CXTShellListCtrlEx object, handles cleanup and deallocation
  138. //-----------------------------------------------------------------------
  139. virtual ~CXTShellListCtrlEx();
  140. public:
  141. //-----------------------------------------------------------------------
  142. // Summary:
  143. //     This member function is called to browse to a particular file folder.
  144. // Parameters:
  145. //     lpszPath - A NULL terminated string that represents the folder to select.
  146. // Returns:
  147. //     true if successful, otherwise returns false.
  148. //-----------------------------------------------------------------------
  149. bool BrowseToFolder(LPCTSTR lpszPath);
  150. //-----------------------------------------------------------------------
  151. // Summary:
  152. //     This member function will associate a CWnd object with the shell list control. This
  153. //     window is usually a CEdit control, but can be any CWnd object. This window will have
  154. //     its window text updated whenever the selected folder is changed.
  155. // Parameters:
  156. //     pSyncWnd - Points to a valid CWnd object.
  157. //-----------------------------------------------------------------------
  158. void SetSyncWnd(CWnd* pSyncWnd);
  159. protected:
  160. //{{AFX_CODEJOCK_PRIVATE
  161. DECLARE_MESSAGE_MAP()
  162. //{{AFX_VIRTUAL(CXTShellListCtrlEx)
  163. //}}AFX_VIRTUAL
  164. //{{AFX_MSG(CXTShellListCtrlEx)
  165. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  166. //}}AFX_MSG
  167. //}}AFX_CODEJOCK_PRIVATE
  168. protected:
  169. CWnd*   m_pSyncWnd;    // Points to the window to synchronize with the shell list control.
  170. CString m_strItemPath; // A NULL terminated string that represents the currently selected folder.
  171. };
  172. /////////////////////////////////////////////////////////////////////////////
  173. AFX_INLINE void CXTShellListCtrlEx::SetSyncWnd(CWnd* pSyncWnd) {
  174. m_pSyncWnd = pSyncWnd;
  175. }
  176. #endif // !defined(__XTSHELLLISTCTRLVIEW_H__)