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

对话框与窗口

开发平台:

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_SBUTTON_H__94947860_0E28_43E3_9F81_E966EF769ABE__INCLUDED_)
  23. #define AFX_SBUTTON_H__94947860_0E28_43E3_9F81_E966EF769ABE__INCLUDED_
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CSButton window
  29. //*****************************************************************
  30. class GUILIBDLLEXPORT  CGuiButton : public CButton
  31. {
  32. // Construction
  33. public:
  34. //*************************************************
  35. CGuiButton();
  36. virtual ~CGuiButton();
  37. //*************************************************
  38. enum Style // Disposic祗n del estilo
  39. {
  40. STYLE_3D       = 0,
  41. STYLE_SEMIFLAT = 1,
  42. STYLE_FLAT     = 2,
  43. STYLEXP        = 3
  44. };
  45. enum AlingMsg  // alineacion del Mensaje
  46. {
  47. ALING_LEFT = 0, 
  48. ALING_RIGTH = 1
  49. };
  50. enum TypeButton
  51. TYPE_NORMAL = 0, // Un boton normal
  52. TYPE_ARROW  = 1, // un Boton con flecha por lo general para menus
  53. TYPE_LINK   = 2  // Un boton con links
  54. };
  55. enum StyleArrow
  56. {
  57. ARROW_RIGHT = 0, // el flecha va a la derecha
  58. ARROW_DOWN  = 1  // el flecha va  hacia abajo
  59. };
  60. public:
  61. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  62. virtual BOOL PreTranslateMessage(MSG* pMsg);
  63. virtual void PreSubclassWindow();
  64. public:
  65. //*********************************************************
  66. void SetToolTip(LPCTSTR lpMsg); // pone tooltip al boton
  67. void SetCaption(LPCTSTR lpMsg); // pone un mensaje en el boton
  68. void SetStyleBorder(Style m_Style = STYLE_3D);  // el boton es 3d semiflat estilo xp, etc
  69. void SetTypeButton(TypeButton m_TypeButton = TYPE_NORMAL); 
  70. void SetAlingArrow(StyleArrow m_AlingArron = ARROW_RIGHT);
  71. void DrawBottonXP(CDC* pDC, CRect rc, BOOL bPress);
  72. BOOL SetImage(UINT uBitmapNormal, UINT uBitmapFoco = (UINT) - 1,
  73. UINT uBitmapPush = (UINT) - 1);
  74. void SetImage(HICON hIcon);
  75. void SetAlingMsg(AlingMsg m_AlingMsg = ALING_LEFT);
  76. void ShowImage(BOOL m_viewimage = TRUE);
  77. void ShowText(BOOL m_viewText = TRUE);
  78. void ShowMenu();
  79. void CalLayout();
  80. void    SetColor(COLORREF m_clrFace);
  81. CSize GetSizeButton();
  82. void    SetDarkButton(BOOL bDark)
  83. {
  84. m_bIsDark = bDark;
  85. };
  86. void    AutoSizeButton(BOOL m_bAutoAjust = TRUE);
  87. void    SetPopupMenu(CMenu* pMenu);
  88. //********************************************************
  89. protected:
  90. CMenu* m_pMenu;
  91. //********************************************************
  92. CToolTipCtrl m_ToolTipCtrl;
  93. int m_iAling; // message aling
  94. int m_iStyle;   // Border Style
  95. int m_iTypeButton; // Style bottom (Arrow,Normal,Link)
  96. int m_iSelected;
  97. int m_iStyleArrow;
  98. HICON m_hicon[3];
  99. LPCTSTR m_lpMsg;
  100. BOOL m_viewImage;
  101. BOOL m_ViewText;
  102. int m_iResMenu;
  103. BOOL m_iMenuActivo;
  104. COLORREF m_clrface;
  105. CSize m_szButton;
  106. BOOL m_ReposWindow;
  107. BOOL m_bIsDark;
  108. // *******************************************************
  109. public:
  110. HMENU m_hMenu;
  111. protected:
  112. //{{AFX_MSG(CSButton)
  113. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  114. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  115. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  116. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  117. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  118. afx_msg void OnTimer(UINT nIDEvent);
  119. afx_msg void OnSysColorChange();
  120. //}}AFX_MSG
  121. DECLARE_MESSAGE_MAP()
  122. };
  123. /////////////////////////////////////////////////////////////////////////////
  124. //{{AFX_INSERT_LOCATION}}
  125. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  126. #endif // !defined(AFX_SBUTTON_H__94947860_0E28_43E3_9F81_E966EF769ABE__INCLUDED_)