SkinProgress.h
上传用户:jmtfjn
上传日期:2007-02-20
资源大小:85k
文件大小:23k
源码类别:

状态条

开发平台:

Visual C++

  1. /******************************************************************************/
  2. /* NAME              : SkinProgress.h                                         */
  3. /* PURPOSE           : Place a bitmapped progress bar into the status bar     */
  4. /* CREATED_BY        : Kochise (kochise@caramail.com)                         */
  5. /* CREATION_DATE     : $C_DATE=YYYY/MM/DD$ 22003/05/02                        */
  6. /* MODIFIED_BY       : Kochise (kochise@caramail.com)                         */
  7. /* MODIFICATION_DATE : $M_DATE=YYYY/MM/DD$ 2003/07/12                         */
  8. /* LANGUAGE          : MFC Visual C++ 6                                       */
  9. /* MPROC_TYPE        : Microsoft Windows compatible computer                  */
  10. /*                                                                            */
  11. /*
  12. $Log: E:ProjectsNoeZooArcSkinProgressTest.zooSkinProgressTestSkinProgress.cpp.adiff $
  13.  *
  14.  *   Rev 1.02 : July 12 2003 14:01:53 (Kochise)
  15.  * Base : CSkinProgress 1.32dev
  16.  *   extracting files : no error
  17.  *   parsing files : no error
  18.  *   diff engine : no error
  19.  *   modify.public.constructor:CSkinProgress
  20.  *   touch.protected.function:CreateCommon
  21.  *   modify.protected.function:ProgressInStatusBar
  22.  *   modify.protected.function:ProgressInDialog
  23.  *   modify.public.function:SetRange
  24.  *   touch.public.function:SetPos
  25.  *   modify.public.function:GetPos
  26.  *   touch.public.function:SetStart
  27.  *   modify.public.function:GetStart
  28.  *   modify.public.function:Reset
  29.  *   add.public.function:SetProgress
  30.  *   add.public.function:GetProgress
  31.  *   modify.public.function:RefreshPanes
  32.  *   touch.protected.function:CompactText
  33.  *   modify.protected.function:GetTimed
  34.  *   modify.protected.function:UpdateProgress
  35.  *   modify.protected.function:OnPaint
  36.  *   compiling project files : no error
  37.  *   packing files : no error
  38.  * http://www.codeproject.com/miscctrl/CSkinProgress.asp
  39.  *
  40.  *   Rev 1.01 : July 06 2003 22:08:37 (Kochise)
  41.  * Base : CSkinProgress 1.28 Devel
  42.  *   extracting files : no error
  43.  *   parsing files : no error
  44.  *   diff engine : no error
  45.  *   modify.public.constructor:CSkinProgress
  46.  *   add.public.constructor:CSkinProgress
  47.  *   modify.public.function:SetBitmap
  48.  *   modify.public.function:ConvBitmap
  49.  *   modify.public.function:SetRange
  50.  *   modify.public.function:SetPos
  51.  *   modify.public.function:OffsetPos
  52.  *   modify.public.function:StepIt
  53.  *   modify.public.function:SetSize
  54.  *   add.public.function:GetSize
  55.  *   add.public.function:GetPos
  56.  *   add.public.function:GetStep
  57.  *   add.public.function:GetLower
  58.  *   add.public.function:GetUpper
  59.  *   add.public.function:SetStart
  60.  *   add.public.function:GetStart
  61.  *   add.public.function:Reset
  62.  *   modify.public.function:SetText
  63.  *   mutate.function:protected.ResizeTextPane->public.RefreshPanes
  64.  *   modify.public.function:RefreshPanes
  65.  *   mutate.function:public.Clear->protected.Clear
  66.  *   add.protected.function:GetTargetRect
  67.  *   mutate.protected.function:Create->CreateCommon
  68.  *   modify.protected.function:CreateCommon
  69.  *   add.protected.function:ProgressInStatusBar
  70.  *   add.protected.function:ProgressInDialog
  71.  *   modify.protected.function:CompactText
  72.  *   add.protected.function:UpdateProgress
  73.  *   modify.protected.function:OnPaint
  74.  *   compiling project files : no error
  75.  *   packing files : no error
  76.  * http://www.codeproject.com/miscctrl/CSkinProgress.asp
  77.  *
  78.  *   Rev 1.00 : May 25 2003 13:25:12 (Kochise)
  79.  * First archived version and released onto CodeProject.
  80.  * Base : CSkinProgress 1.12 Devel
  81.  *   add.public.constructor:CSkinProgress
  82.  *   add.public.constructor:CSkinProgress
  83.  *   add.public.function:SetRange
  84.  *   add.public.function:SetText
  85.  *   add.public.function:SetSize
  86.  *   add.public.function:SetBitmap
  87.  *   add.public.function:CopyBitmap
  88.  *   add.public.function:ConvBitmap
  89.  *   add.public.function:SetPos
  90.  *   add.public.function:OffsetPos
  91.  *   add.public.function:SetStep
  92.  *   add.public.function:StepIt
  93.  *   add.public.function:Clear
  94.  *   add.public.destructor:~CSkinProgress
  95.  *   add.protected.function:Create
  96.  *   add.protected.function:GetStatusBar
  97.  *   add.protected.function:ResizeTextPane
  98.  *   add.protected.function:CompactText
  99.  *   add.protected.function:GetTimed
  100.  *   add.protected.function:OnEraseBkgnd
  101.  *   add.protected.function:OnPaint
  102.  *   add.protected.function:OnSizing
  103.  *   add.protected.function:OnSize
  104.  *   add.protected.function:OnTimer
  105.  *   compiling project files : no error
  106.  *   packing files : no error
  107.  * http://www.codeproject.com/useritems/CSkinProgress.asp
  108.  *
  109.  */
  110. /******************************************************************************/
  111. #if !defined(AFX_SKINPROGRESS_H__1DF43017_611B_44BD_822A_FAA0E01B2257__INCLUDED_)
  112. #define AFX_SKINPROGRESS_H__1DF43017_611B_44BD_822A_FAA0E01B2257__INCLUDED_
  113. #if _MSC_VER > 1000
  114. #pragma once
  115. #endif // _MSC_VER > 1000
  116. // SkinProgress.h : header file
  117. //
  118. /*** eSkinProgressBitmap ******************************************************/
  119. /* Purpose : Used in 'OnPaint' for internal purposes, in order to index the   */
  120. /*           m_BarImgLst's elements                                           */
  121. /* Unit    : None                                                             */
  122. /* Range   : enum LIST                                                        */
  123. /* List    :  0 = cSPB_START               : image for the start              */
  124. /*            1 = cSPB_BEFORE              : image for before <m_nLeft>       */
  125. /*            2 = cSPB_LEFT  = cSPB_TOP    : image for <m_nLeft>/<m_nLower>   */
  126. /*            3 = cSPB_CENTER              : image for the center of the bar  */
  127. /*            4 = cSPB_BAR                 : image for the bar body           */
  128. /*            5 = cSPB_RIGHT = cSPB_BOTTOM : image for <m_nRight>             */
  129. /*            6 = cSPB_AFTER               : image for after <m_nRight>       */
  130. /*            7 = cSPB_BACKGROUND          : image for the bar background     */
  131. /*            8 = cSPB_END                 : image for the end                */
  132. /*            9 = cSPB_EnumElements        : current number of elements       */
  133. /* Example : None                                                             */
  134. /******************************************************************************/
  135. typedef enum eSkinProgressBitmap
  136. {
  137.   cSPB_START = 0,
  138.   cSPB_BEFORE,
  139.   cSPB_LEFT,
  140.   cSPB_CENTER,
  141.   cSPB_BAR,
  142.   cSPB_RIGHT,
  143.   cSPB_AFTER,
  144.   cSPB_BACKGROUND,
  145.   cSPB_END,
  146.   cSPB_EnumElements,
  147.   cSPB_TOP    = cSPB_LEFT,
  148.   cSPB_BOTTOM = cSPB_RIGHT,
  149. };
  150. /*** eProgressSkinText ********************************************************/
  151. /* Purpose : TRUE condition flag                                              */
  152. /* Unit    : None                                                             */
  153. /* Range   : enum LIST                                                        */
  154. /* List    :  0 = cSPT_NONE         : no text information                     */
  155. /*            1 = cSPT_PERCENT      : simple percent completion               */
  156. /*            2 = cSPT_TIMED        : complete timed completion               */
  157. /*            3 = cSPT_AUTOSIZE     : switch between cSPT_PERCENT and         */
  158. /*                                    cSPT_TIMED according to the remaining   */
  159. /*                                    place available                         */
  160. /*            4 = cSPT_EnumElements : current number of elements              */
  161. /* Example : None                                                             */
  162. /******************************************************************************/
  163. typedef enum eProgressSkinText
  164. {
  165.   cSPT_NONE = 0,
  166.   cSPT_PERCENT,
  167.   cSPT_TIMED,
  168.   cSPT_AUTOSIZE,
  169.   cSPT_EnumElements
  170. };
  171. /*** dCSP_DIALOG_PROGRESS *****************************************************/
  172. /* Purpose : Activate the usage of CWnd object as anchor for the progress bar */
  173. /* Unit    : None                                                             */
  174. /* Range   : None                                                             */
  175. /* List    : None                                                             */
  176. /* Example : Lately implemented, but when activated, allows the use of CWnd   */
  177. /*           objects to put the progress bar everywhere you want, in dialog   */
  178. /*           box for instance...                                              */
  179. /******************************************************************************/
  180. #define dCSP_DIALOG_PROGRESS
  181. /*** dCSP_TIMED_REDRAW ********************************************************/
  182. /* Purpose : Activate the redraw on timer                                     */
  183. /* Unit    : None                                                             */
  184. /* Range   : None                                                             */
  185. /* List    : None                                                             */
  186. /* Example : I implemented this to reduce to calcultation time when activated */
  187. /*           by forcing the bar to redraw/refresh ONLY 50 times a second.     */
  188. /******************************************************************************/
  189. //#define dCSP_TIMED_REDRAW
  190. /*** dCSP_VERTICAL_BAR ********************************************************/
  191. /* Purpose : Activate the vertical bar possibilities                          */
  192. /* Unit    : None                                                             */
  193. /* Range   : None                                                             */
  194. /* List    : None                                                             */
  195. /* Example : None                                                             */
  196. /******************************************************************************/
  197. #define dCSP_VERTICAL_BAR
  198. /*** dCSP_SLIDERBAR_METHOD ****************************************************/
  199. /* Purpose : Activate the full slider bar calculation and reverse display     */
  200. /* Unit    : None                                                             */
  201. /* Range   : None                                                             */
  202. /* List    : None                                                             */
  203. /* Example : None                                                             */
  204. /******************************************************************************/
  205. #define dCSP_SLIDERBAR_METHOD
  206. // SPECIFICS CONDITIONAL COMPILATION DEFINES - ONLY FOR SPECIFIC USAGES ////////
  207. /*** dCSP_RESOURCE_BITMAP *****************************************************/
  208. /* Purpose : Activate the use of the default resource bitmap, instead of the  */
  209. /*           AQUA_BITMAP array                                                */
  210. /* Unit    : None                                                             */
  211. /* Range   : None                                                             */
  212. /* List    : None                                                             */
  213. /* Example : None                                                             */
  214. /******************************************************************************/
  215. //#define dCSP_RESOURCE_BITMAP
  216. /*** dCSP_CREATE_BITMAP_FILE **************************************************/
  217. /* Purpose : Create the BITMAP file in 'SetBitmap', to change the defaut      */
  218. /*           AQUA_BITMAP array                                                */
  219. /* Unit    : None                                                             */
  220. /* Range   : None                                                             */
  221. /* List    : None                                                             */
  222. /* Example : Just activate this, then launch the progress bar WITH A PROVIDED */
  223. /*           bitmap (useless to use the default one, otherwise you'll just    */
  224. /*           get a copy of it in the current video mode) and a '.cpp' file is */
  225. /*           created at the root of drive C: ! Just replace the               */
  226. /*           aucAQUA_BITMAP array and the sbmAQUA_BITMAP structure at the     */
  227. /*           beginning of the 'SkinProgress.cpp' file, desactivate this       */
  228. /*           define and everything should works fine once recompilated...     */
  229. /******************************************************************************/
  230. //#define dCSP_CREATE_BITMAP_FILE
  231. /*** dCSP_DISPLAY_STRETCH *****************************************************/
  232. /* Purpose : Display <m_pStretchBmp> content instead of the progress bar,     */
  233. /*           used to snap shot for documentation upon vertical bar            */
  234. /*           segmentation                                                     */
  235. /* Unit    : None                                                             */
  236. /* Range   : None                                                             */
  237. /* List    : None                                                             */
  238. /* Example : None                                                             */
  239. /* WARNING : Force VERTICAL_BAR calculation if used with dCSP_VERTICAL_BAR    */
  240. /******************************************************************************/
  241. //#define dCSP_DISPLAY_STRETCH
  242. /////////////////////////////////////////////////////////////////////////////
  243. // CSkinProgress window
  244. class CSkinProgress : public CStatic
  245. {
  246.   public: // --- PUBLIC -----------------------------------------------------
  247.     // Construction
  248. // *** CONSTRUCTORS ***
  249.     // Default constructor
  250.   CSkinProgress
  251.     ();
  252.     // Default constructor with parameters
  253.   CSkinProgress
  254.     (
  255.       LPCTSTR  i_poStrMessage,
  256.       int      i_nUpper       = 100,
  257.       int      i_nProgress    = cSPT_PERCENT,
  258.       int      i_nPane        = 0,
  259.       int      i_nSize        = 200,
  260.       CBitmap* i_poBitmap     = NULL
  261. #ifdef dCSP_SLIDERBAR_METHOD
  262.      ,BOOL     i_bReverse     = false
  263. #endif // dCSP_SLIDERBAR_METHOD
  264.     );
  265. #ifdef dCSP_DIALOG_PROGRESS
  266.     // Default constructor with parameters
  267.   CSkinProgress
  268.     (
  269.       CWnd*    i_poWndProgress,
  270.       int      i_nUpper       = 100, 
  271.       CBitmap* i_poBitmap     = NULL,
  272. #ifdef dCSP_SLIDERBAR_METHOD
  273.       BOOL     i_bReverse     = false,
  274. #endif // dCSP_SLIDERBAR_METHOD
  275.       CWnd*    i_poWndMessage = NULL,
  276.       LPCTSTR  i_poStrMessage = NULL,
  277.       int      i_nProgress    = cSPT_NONE
  278.     );
  279. #endif // dCSP_DIALOG_PROGRESS
  280. // *** DESTRUCTOR ***
  281.   virtual ~CSkinProgress();
  282.     // Attributes
  283.     // Operations
  284. // *** BITMAP PROCESS ***
  285.     // Change of progress bar image
  286.     BOOL SetBitmap
  287.     (
  288.       CBitmap* i_poBitmap     = NULL
  289. #ifndef dCSP_TIMED_REDRAW
  290.      ,BOOL     i_bDisplay     = true
  291. #endif // dCSP_TIMED_REDRAW
  292.     );
  293.     // Copy a bitmap
  294.     BOOL CopyBitmap
  295.     (
  296.       CBitmap* o_poBitmap,
  297.       CBitmap* i_poBitmap
  298.     );
  299.     // Convert a bitmap to a specified device context
  300.     BOOL ConvBitmap
  301.     (
  302.       CBitmap* o_poBitmap,
  303.       CBitmap* i_poBitmap,
  304.       CDC*     i_poDC         = NULL
  305.     );
  306. // *** PROGRESS INTERFACE ***
  307.     // Set the new range
  308.   BOOL SetRange
  309.     (
  310.       int      i_nLower,
  311.       int      i_nUpper,
  312.       int      i_nStep        = 1,
  313.       BOOL     i_bResamble    = false
  314. #ifndef dCSP_TIMED_REDRAW
  315.      ,BOOL     i_bDisplay     = true
  316. #endif // dCSP_TIMED_REDRAW
  317.     );
  318.     // Set <m_nRight> value
  319.   int SetPos
  320.     (
  321.       int      i_nPos
  322. #ifndef dCSP_TIMED_REDRAW
  323.      ,BOOL     i_bDisplay     = true
  324. #endif // dCSP_TIMED_REDRAW
  325.     );
  326.     // Forward of <i_nOffset> value
  327.   int OffsetPos
  328.     (
  329.       int      i_nOffset
  330. #ifndef dCSP_TIMED_REDRAW
  331.      ,BOOL     i_bDisplay     = true
  332. #endif // dCSP_TIMED_REDRAW
  333.     );
  334.     // Set <m_nStep> value
  335.   int SetStep
  336.     (
  337.       int      i_nStep
  338.     );
  339.     // Forward of <m_nStep> value
  340.   int StepIt
  341.     (
  342. #ifndef dCSP_TIMED_REDRAW
  343.       BOOL     i_bDisplay     = true
  344. #endif // dCSP_TIMED_REDRAW
  345.     );
  346. // *** EXTENDED PROGRESS INTERFACE ***
  347.     // Set size of the progress bar
  348.   BOOL SetSize
  349.     (
  350.       int      i_nSize
  351. #ifndef dCSP_TIMED_REDRAW
  352.      ,BOOL     i_bDisplay     = true
  353. #endif // dCSP_TIMED_REDRAW
  354.     );
  355.     // Get width or height of the progress bar in pixel, mostly used in CSkinSlider
  356.   int GetSize
  357.     (
  358.     );
  359.     // Get <m_nRight> value
  360.   int GetPos
  361.     (
  362.       BOOL     i_bPercent     = false
  363.     );
  364.     // Get <m_nStep> value
  365.   int GetStep
  366.     (
  367.     );
  368.     // Get <m_nLower> value
  369.   int GetLower
  370.     (
  371.     );
  372.     // Get <m_nUpper> value
  373.   int GetUpper
  374.     (
  375.     );
  376. #ifdef dCSP_SLIDERBAR_METHOD
  377.     // Set <m_nLeft> value
  378.   int SetStart
  379.     (
  380.       int      i_nStart
  381. #ifndef dCSP_TIMED_REDRAW
  382.      ,BOOL     i_bDisplay     = true
  383. #endif // dCSP_TIMED_REDRAW
  384.     );
  385.     // Get <m_nLeft> value
  386.   int GetStart
  387.     (
  388.       BOOL     i_bPercent     = false
  389.     );
  390. #endif // dCSP_SLIDERBAR_METHOD
  391.     // Restart the progress bar
  392.     void Reset
  393.     (
  394. #ifndef dCSP_TIMED_REDRAW
  395.       BOOL     i_bDisplay     = true
  396. #endif // dCSP_TIMED_REDRAW
  397.     );
  398. // *** TEXT INTERFACE ***
  399.     // Set the new text
  400.   BOOL SetText 
  401.     (
  402.       LPCTSTR  i_poStrMessage
  403. #ifndef dCSP_TIMED_REDRAW
  404.      ,BOOL     i_bDisplay     = true
  405. #endif // dCSP_TIMED_REDRAW
  406.     );
  407.     // Set progress text
  408.   BOOL SetProgress
  409.     (
  410.       int      i_nProgress
  411. #ifndef dCSP_TIMED_REDRAW
  412.      ,BOOL     i_bDisplay     = true
  413. #endif // dCSP_TIMED_REDRAW
  414.     );
  415.     // Get <m_nProgressText> value
  416.   int GetProgress
  417.     (
  418.     );
  419. // *** UPDATE PROCESS ***
  420.     // Recalc the layout of the panes and refresh them, must be used in [OnSizing(...)] of the parent function
  421.     BOOL RefreshPanes
  422.     (
  423.     );
  424.     // Overrides
  425.     // ClassWizard generated virtual function overrides
  426.     //{{AFX_VIRTUAL(CSkinProgress)
  427.     //}}AFX_VIRTUAL
  428.     // Implementation
  429.   protected: // --- PROTECTED -----------------------------------------------
  430.     // Attributes
  431. #ifdef dCSP_VERTICAL_BAR
  432.     BOOL       m_bVertical;          // true if vertical *NEVER USE IN CSkinProgress for Status Bar*
  433. #endif // dCSP_VERTICAL_BAR
  434.     int        m_nSize;              // Percentage size of control (if <0, autosize with the text if in pane 0)
  435.     int        m_nPane;              // ID of status bar pane progress bar is to appear in
  436.     CString    m_oStrMessage;        // Message to display in pane 0
  437.     CString    m_oStrPrevMessage;    // Message to display in pane 0
  438.     CString    m_oStrPrevText;       // Previous text in pane m_nPane
  439.     int        m_nProgressText;      // Settings of the Progress text
  440.     int        m_nLower;             // Min value
  441.     int        m_nUpper;             // Max value
  442.     int        m_nStep;              // Step increment
  443. #ifdef dCSP_SLIDERBAR_METHOD
  444.     int        m_nPrevLeftAff;       // For 'OnPaint'
  445.     int        m_nLeftAff;           // For 'OnPaint'
  446.     int        m_nPrevLeft;          // Previous position (m_nLower <= m_nPrevLeft <= m_nUpper)
  447.     int        m_nLeft;              // Current position  (m_nLower <= m_nLeft <= m_nUpper)
  448. #endif // dCSP_SLIDERBAR_METHOD
  449.     int        m_nPrevRightAff;      // For 'OnPaint'
  450.     int        m_nRightAff;          // For 'OnPaint'
  451.     int        m_nPrevRight;         // Previous position (m_nLower <= m_nPrevRight <= m_nUpper)
  452.     int        m_nRight;             // Current position  (m_nLower <= m_nRight <= m_nUpper)
  453.     int        m_nPrevEndAff;        // For 'OnPaint'
  454.     int        m_nEndAff;            // For 'OnPaint'
  455. #ifdef dCSP_SLIDERBAR_METHOD
  456.     BOOL       m_bReverse;           // Reverse display, start from the end to the beginning of the progress bar
  457. #endif // dCSP_SLIDERBAR_METHOD
  458.     int        m_nBmpWidth;          // Width of each m_BarImgLst element
  459.     int        m_nBmpHeight;         // Height of each m_BarImgLst element
  460.     CRect      m_oRectPane;          // Position  of the progress bar used in [RefreshPanes()]
  461.     CRect      m_oRectPaint;         // Dimension of the progress bar used in [OnPaint()]
  462.     CBitmap*   m_poBaseBmp;          // The base bitmap
  463.     CBitmap*   m_poCompatibleBmp;    // The client DC compatible base bitmap
  464.     CBitmap*   m_poStretchBmp  ;     // The stretched picture to adapt it to the bar size
  465.     CImageList m_oBarImgLst;         // The ImageList that contains all the progress bar picture elements
  466.     CBitmap*   m_poProgressBmp;      // The progress bar, created, modified and displayed in [OnPaint()]
  467. #ifdef dCSP_DIALOG_PROGRESS
  468.     CWnd*      m_poWndProgress;      // The base CWnd used to create the progress bar
  469.     CWnd*      m_poWndMessage;       // The base CWnd used to create the text pane
  470. #endif // dCSP_DIALOG_PROGRESS
  471.     SYSTEMTIME m_sStartTimeSystem;   // Creation time of the SkinProgress
  472.     LONGLONG   m_nStartTimeLongLong; // Same for 'GetTimed'
  473.     // Operations
  474. // *** CLEANER ***
  475.     // Deletion of the progress bar, restoration of the context
  476.   void Clear
  477.     (
  478.     );
  479. // *** SYSTEM INTERFACE ***
  480.     // Get the window's status bar handler
  481.     CStatusBar* GetStatusBar
  482.     (
  483.     );
  484.     // Get the target CRect of the progress bar
  485.     BOOL GetTargetRect
  486.     (
  487.       CRect* o_poProgressRect
  488.     );
  489. // *** INITIALIZATORS ***
  490.     // I have put here 'Create...', to avoid to call them twice on an existing CSkinProgress !
  491.     BOOL CreateCommon
  492.     (
  493.       LPCTSTR  i_poStrMessage,
  494.       int      i_nUpper        = 100,
  495.       int      i_nProgress     = cSPT_PERCENT,
  496.       CBitmap* i_poBitmap      = NULL
  497. #ifdef dCSP_SLIDERBAR_METHOD
  498.      ,BOOL     i_bReverse      = false
  499. #endif // dCSP_SLIDERBAR_METHOD
  500.     );
  501.     // Specific Create for Status Bar
  502.   BOOL ProgressInStatusBar
  503.     (
  504.       LPCTSTR  i_poStrMessage,
  505.       int      i_nUpper        = 100,
  506.       int      i_nProgress     = cSPT_PERCENT,
  507.       int      i_nPane         = 0,
  508.       int      i_nSize         = 200,
  509.       CBitmap* i_poBitmap      = NULL
  510. #ifdef dCSP_SLIDERBAR_METHOD
  511.      ,BOOL     i_bReverse      = false
  512. #endif // dCSP_SLIDERBAR_METHOD
  513.     );
  514. #ifdef dCSP_DIALOG_PROGRESS
  515.     // Specific Create for Dialog
  516.   BOOL ProgressInDialog
  517.     (
  518.       CWnd*    i_poWndProgress,
  519.       int      i_nUpper        = 100,
  520.       CBitmap* i_poBitmap      = NULL,
  521. #ifdef dCSP_SLIDERBAR_METHOD
  522.       BOOL     i_bReverse      = false,
  523. #endif // dCSP_SLIDERBAR_METHOD
  524.       CWnd*    i_poWndMessage  = NULL,
  525.       LPCTSTR  i_poStrMessage  = NULL,
  526.       int      i_nProgress     = cSPT_NONE
  527.     );
  528. #endif // dCSP_DIALOG_PROGRESS
  529. // *** DATA PROCESS ***
  530.     // Calculation of the '...' text that fits in the (i_nMaxWidth + i_nAddWidth) place
  531.     int CompactText
  532.     (
  533.       CString* io_pString,
  534.       CDC*     i_pDC, 
  535.       int      i_nMaxWidth, 
  536.       int      i_nAddWidth     = 0
  537.     );
  538.     // Get the complete timed message (64 bits calculation inside)
  539.     BOOL GetTimed
  540.     (
  541.       CString* o_poTimed
  542.     );
  543. // *** UPDATE PROCESS ***
  544.     // Update of the progress bar values
  545.     BOOL UpdateProgress
  546.     (
  547.       CRect*   o_poRectPaint   = NULL
  548.     );
  549. // *** WINDOWS MAPPED PROCESSING ***
  550.   // Generated message map functions
  551.     //{{AFX_MSG(CSkinProgress)
  552.     afx_msg BOOL OnEraseBkgnd(CDC* i_pDC);
  553.     afx_msg void OnPaint();
  554.     afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
  555.     afx_msg void OnSize(UINT nType, int cx, int cy);
  556.     afx_msg void OnTimer(UINT nIDEvent);
  557.   //}}AFX_MSG
  558.   DECLARE_MESSAGE_MAP()
  559. };
  560. /////////////////////////////////////////////////////////////////////////////
  561. //{{AFX_INSERT_LOCATION}}
  562. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  563. #endif // !defined(AFX_SKINPROGRESS_H__1DF43017_611B_44BD_822A_FAA0E01B2257__INCLUDED_)