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

对话框与窗口

开发平台:

Visual C++

  1. // XTUtil.h: interface for utility classes.
  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(__XTUTIL_H__)
  22. #define __XTUTIL_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. //===========================================================================
  28. // Summary:
  29. //     CXTIconHandle is a stand alone helper class.  It is used to
  30. //     automatically destroy dynamically created hIcon handles.
  31. //===========================================================================
  32. class _XTP_EXT_CLASS CXTIconHandle
  33. {
  34. public:
  35. //-----------------------------------------------------------------------
  36. // Summary:
  37. //     Constructs a CXTIconHandle object.
  38. // Parameters:
  39. //     hIcon - Handle to a dynamically created icon.
  40. //-----------------------------------------------------------------------
  41. CXTIconHandle();
  42. CXTIconHandle(HICON hIcon); // <combine CXTIconHandle::CXTIconHandle>
  43. //-----------------------------------------------------------------------
  44. // Summary:
  45. //     Destroys a CXTIconHandle object, handles cleanup and de-
  46. //     allocation.
  47. //-----------------------------------------------------------------------
  48. virtual ~CXTIconHandle();
  49. public:
  50. //-----------------------------------------------------------------------
  51. // Summary:
  52. //     This operator is used to retrieve a handle to the icon
  53. //     associated with the CXTIconHandle object.
  54. // Returns:
  55. //     An HICON handle to the icon.
  56. //-----------------------------------------------------------------------
  57. operator HICON() const;
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     This operator is used to initialize the icon associated with
  61. //     the CXTIconHandle object.
  62. // Parameters:
  63. //     hIcon - Handle to a dynamically created icon.
  64. // Returns:
  65. //     A reference to a CXTIconHandle object.
  66. //-----------------------------------------------------------------------
  67. CXTIconHandle& operator=(HICON hIcon);
  68. //-----------------------------------------------------------------------
  69. // Summary:
  70. //     This member function gets the extent of an icon.
  71. // Parameters:
  72. //     hIcon - Icon handle whose dimensions are to be retrieved.
  73. // Returns:
  74. //     A CSize object.
  75. //-----------------------------------------------------------------------
  76. CSize GetExtent() const;
  77. static CSize GetExtent(HICON hIcon); // <combine CXTIconHandle::GetExtent@const>
  78. //-----------------------------------------------------------------------
  79. // Summary:
  80. //     This member function scales an icon to fit into a rectangle.
  81. //     The width and height ration is retained as much as possible.
  82. //     The caller assumes ownership of the returned icon handle.
  83. // Parameters:
  84. //     hIcon         - Icon to be fitted.
  85. //     desiredExtent - Desired icon extent.
  86. // Returns:
  87. //     An icon handle.
  88. //-----------------------------------------------------------------------
  89. HICON ScaleToFit(CSize desiredExtent) const;
  90. static HICON ScaleToFit(HICON hIcon, CSize desiredExtent); // <combine CXTIconHandle::ScaleToFit@CSize@const>
  91. protected:
  92. HICON m_hIcon;  // Handle to a dynamically created icon.
  93. };
  94. AFX_INLINE CXTIconHandle::operator HICON() const {
  95. return m_hIcon;
  96. }
  97. #define CXTNoFlickerWnd CXTPNoFlickerWnd
  98. //===========================================================================
  99. // Summary:
  100. //     CXTSplitPath conveniently wraps the _splitpath API for easier
  101. //     access to path components such as file name and extension.
  102. //===========================================================================
  103. class _XTP_EXT_CLASS CXTSplitPath
  104. {
  105. public:
  106. //-----------------------------------------------------------------------
  107. // Summary:
  108. //     Constructs a CXTSplitPath object and breaks a path into its
  109. //     four components.
  110. // Parameters:
  111. //     lpszPathBuffer - A NULL terminated string that represents the
  112. //                      path you
  113. //-----------------------------------------------------------------------
  114. CXTSplitPath(LPCTSTR lpszPathBuffer = NULL);
  115. //-----------------------------------------------------------------------
  116. // Summary:
  117. //     Destroys a CXTSplitPath object, handles cleanup and de-
  118. //     allocation.
  119. //-----------------------------------------------------------------------
  120. virtual ~CXTSplitPath();
  121. public:
  122. //-----------------------------------------------------------------------
  123. // Summary:
  124. //     Call SplitPath to break a path into its four components.
  125. // Parameters:
  126. //     lpszPathBuffer - A NULL terminated string that represents the
  127. //                      path you
  128. //-----------------------------------------------------------------------
  129. void SplitPath(LPCTSTR lpszPathBuffer);
  130. //-----------------------------------------------------------------------
  131. // Summary:
  132. //     Call GetDrive() to return the drive letter, followed by a
  133. //     colon (:) for the path split.
  134. // Returns:
  135. //     A NULL terminated string.
  136. //-----------------------------------------------------------------------
  137. CString GetDrive() const;
  138. //-----------------------------------------------------------------------
  139. // Summary:
  140. //     Call GetDir() to return the directory path, including
  141. //     trailing slash. Forward slashes (/), backslashes (), or
  142. //     both may be used.
  143. // Returns:
  144. //     A NULL terminated string.
  145. //-----------------------------------------------------------------------
  146. CString GetDir() const;
  147. //-----------------------------------------------------------------------
  148. // Summary:
  149. //     Call GetFName() to return the base filename without extension
  150. // Returns:
  151. //     A NULL terminated string.
  152. //-----------------------------------------------------------------------
  153. CString GetFName() const;
  154. //-----------------------------------------------------------------------
  155. // Summary:
  156. //     Call GetExt() to return the filename extension, including
  157. //     leading period (.)
  158. // Returns:
  159. //     A NULL terminated string.
  160. //-----------------------------------------------------------------------
  161. CString GetExt() const;
  162. //-----------------------------------------------------------------------
  163. // Summary:
  164. //     Call GetFullPath() to return the full path that was split.
  165. // Returns:
  166. //     A NULL terminated string.
  167. //-----------------------------------------------------------------------
  168. CString GetFullPath() const;
  169. //-----------------------------------------------------------------------
  170. // Summary:
  171. //     Call GetFullName() to return the file name plus extension
  172. //     only for the path that was split.
  173. // Returns:
  174. //     A NULL terminated string.
  175. //-----------------------------------------------------------------------
  176. CString GetFullName() const;
  177. protected:
  178. TCHAR m_szDrive[_MAX_DRIVE]; // Optional drive letter, followed by a colon (:)
  179. TCHAR m_szDir[_MAX_DIR];     // Optional directory path, including trailing slash. Forward slashes (/), backslashes (), or both may be used.
  180. TCHAR m_szFName[_MAX_FNAME]; // Base filename (no extension)
  181. TCHAR m_szExt[_MAX_EXT];     // Optional filename extension, including leading period (.)
  182. };
  183. /////////////////////////////////////////////////////////////////////////////
  184. #endif // !defined(__XTUTIL_H__)