GuiFolder.h
上传用户:wlkj888
上传日期:2022-08-01
资源大小:806k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * *  
  3.  * GuiToolKit   *
  4.  *                            (MFC extension) *  
  5.  * Created by Francisco Campos G. www.beyondata.com fcampos@beyondata.com *
  6.  *--------------------------------------------------------------------------*    
  7.  * *
  8.  * This program is free software; so you are free to use it any of your *
  9.  * applications(Freeware, Shareware, Commercial), but leave this header *
  10.  * intact. *
  11.  * *
  12.  * These files are provided "as is" without warranty of any kind. *
  13.  * *
  14.  *        GuiToolKit is forever FREE CODE !!!!! *
  15.  * *
  16.  *--------------------------------------------------------------------------*
  17.  * Created by: Francisco Campos G. *
  18.  * Bug Fixes and improvements :(Add your name) *
  19.  * -Francisco Campos *
  20.  * *
  21.  ****************************************************************************/
  22. #if !defined(AFX_GUIFOLDER_H__44CCC3EF_FC44_4877_94C7_61A7ACB0E216__INCLUDED_)
  23. #define AFX_GUIFOLDER_H__44CCC3EF_FC44_4877_94C7_61A7ACB0E216__INCLUDED_
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CGuiFolder window
  29. class CFolderBar
  30. {
  31. public:
  32. CFolderBar(CWnd* m_wnd, LPCSTR lp_msg, UINT uImg = (UINT) - 1);
  33. public:
  34. CWnd* m_Cwnd;
  35. LPCSTR m_lpMsg;
  36. UINT m_img;
  37. CRect m_rect;
  38. BOOL m_posUp;
  39. };
  40. class GUILIBDLLEXPORT CGuiFolder : public CWnd
  41. {
  42. DECLARE_DYNAMIC(CGuiFolder)
  43. // Construction
  44. public:
  45. CGuiFolder();
  46. virtual ~CGuiFolder();
  47. public:
  48. enum Style
  49. {
  50. mNormal = 0,
  51. mPush = 1,
  52. mFlat = 2
  53. };
  54. enum TypeFolder
  55. {
  56. mOutlook = 0,
  57. mToolBox = 1
  58. };
  59. public:
  60. virtual BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
  61. virtual BOOL PreTranslateMessage(MSG* pMsg);
  62. virtual void PreSubclassWindow(); 
  63. public:
  64. void AddFolder(CWnd* pParent, LPCSTR lpMsg, UINT uIMg = (UINT) - 1);
  65. void DeleteFolder(int m_iNumFolder, BOOL bUpdate = TRUE);
  66. void RecalLayout();
  67. virtual void DrawFolder(CFolderBar* cfb, Style m_Style);
  68. int PointInFolder(CPoint pt);
  69. void EfectoScroll();
  70. void RemoveAllFolder();
  71. void TypeLook(TypeFolder tol);
  72. void SelectFolder(int m_iNumFolder);
  73. virtual void StyleDispl(DWORD dwDsp=GUISTYLE_XP)
  74. {
  75. m_StyleDisplay=dwDsp;
  76. SendMessage(WM_NCPAINT);Invalidate(); UpdateWindow();
  77. }
  78. DWORD m_StyleDisplay;
  79. protected:
  80. CPtrArray m_ArrayFolder;
  81. CToolTipCtrl m_ToolTip;
  82. int m_NumFolders;   // total de folders
  83. int m_numFolderDown;
  84. int m_numFolderUp;   // numero de folders arriba
  85. CFont* cfont;
  86. int m_iSelected;
  87. int m_ultimoFolderResal;
  88. int m_iPosDown; // a partir de donde se ubica el anterior folder
  89. int     m_iposUp;   // a partir de donde se ubica el siguiente folder
  90. int m_itemp;
  91. int m_AntFolder; // folder anterior
  92. TypeFolder m_typel; // tipo de look
  93. int m_iWhatFolderIsDrawNow; // que folder estoy pintando
  94. protected:
  95. //{{AFX_MSG(CFolder)
  96. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  97. afx_msg void OnPaint();
  98. afx_msg void OnSize(UINT nType, int cx, int cy);
  99. afx_msg void OnTimer(UINT nIDEvent);
  100. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  101. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  102. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  103. afx_msg void OnDestroy();
  104. //}}AFX_MSG
  105. DECLARE_MESSAGE_MAP()
  106. };
  107. /////////////////////////////////////////////////////////////////////////////
  108. //{{AFX_INSERT_LOCATION}}
  109. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  110. #endif // !defined(AFX_GUIFOLDER_H__44CCC3EF_FC44_4877_94C7_61A7ACB0E216__INCLUDED_)