GuiButton.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:4k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. //-----------------------------------------------------------------------//
  2. // This is a part of the GuiLib MFC Extention.  //
  3. // Autor  :  Francisco Campos  //
  4. // (C) 2002 Francisco Campos <www.beyondata.com> All rights reserved     //
  5. // This code is provided "as is", with absolutely no warranty expressed  //
  6. // or implied. Any use is at your own risk.  //
  7. // You must obtain the author's consent before you can include this code //
  8. // in a software library.  //
  9. // If the source code in  this file is used in any application  //
  10. // then acknowledgement must be made to the author of this program  //
  11. // fcampos@tutopia.com  //
  12. //-----------------------------------------------------------------------//
  13. #if !defined(AFX_SBUTTON_H__94947860_0E28_43E3_9F81_E966EF769ABE__INCLUDED_)
  14. #define AFX_SBUTTON_H__94947860_0E28_43E3_9F81_E966EF769ABE__INCLUDED_
  15. #if _MSC_VER > 1000
  16. #pragma once
  17. #endif // _MSC_VER > 1000
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CSButton window
  20. #include "GuiLib.h"
  21. //*****************************************************************
  22. class GUILIBDLLEXPORT  CGuiButton : public CButton
  23. {
  24. // Construction
  25. public:
  26. //*************************************************
  27. CGuiButton();
  28. virtual ~CGuiButton();
  29. //*************************************************
  30. enum Style{ //Disposic祗n del estilo
  31. STYLE_3D=0,
  32. STYLE_SEMIFLAT=1,
  33.         STYLE_FLAT=2,
  34. STYLEXP=3
  35. };
  36. enum AlingMsg{//alineacion del Mensaje
  37. ALING_LEFT=0, 
  38. ALING_RIGTH=1
  39. };
  40. enum TypeButton{ //
  41. TYPE_NORMAL=0,//Un boton normal
  42. TYPE_ARROW=1, //un Boton con flecha por lo general para menus
  43. TYPE_LINK=2   //Un boton con links
  44. };
  45. enum StyleArrow{
  46. ARROW_RIGHT=0, //el flecha va a la derecha
  47. ARROW_DOWN=1   //el flecha va  hacia abajo
  48. };
  49. public:
  50. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  51. virtual BOOL PreTranslateMessage(MSG* pMsg);
  52. virtual void PreSubclassWindow();
  53. public:
  54. //*********************************************************
  55. void SetToolTip(LPCTSTR lpMsg); //pone tooltip al boton
  56. void SetCaption(LPCSTR lpMsg); //pone un mensaje en el boton
  57. void SetStyleBorder(Style m_Style=STYLE_3D);  //el boton es 3d semiflat estilo xp, etc
  58. void SetTypeButton(TypeButton m_TypeButton=TYPE_NORMAL); 
  59. void SetAlingArrow(StyleArrow m_AlingArron=ARROW_RIGHT);
  60. void DrawBottonXP(CDC* pDC, CRect rc,BOOL bPress);
  61. BOOL SetImage(UINT uBitmapNormal,UINT uBitmapFoco=(UINT)-1,
  62.   UINT uBitmapPush=(UINT)-1);
  63. void SetImage(HICON hIcon);
  64. void SetAlingMsg(AlingMsg m_AlingMsg=ALING_LEFT);
  65. void ShowImage( BOOL m_viewimage=TRUE);
  66. void ShowText( BOOL m_viewText=TRUE);
  67. void ShowMenu();
  68. void CalLayout();
  69. void    SetColor(COLORREF m_clrFace);
  70. CSize GetSizeButton();
  71. void    SetDarkButton(BOOL bDark){m_bIsDark=bDark;};
  72. void    AutoSizeButton(BOOL m_bAutoAjust=TRUE);
  73. void    SetPopupMenu(CMenu* pMenu);
  74. //********************************************************
  75. protected:
  76. CMenu* m_pMenu;
  77. //********************************************************
  78. CToolTipCtrl m_ToolTipCtrl;
  79. int m_iAling; //message aling
  80. int m_iStyle;   //Border Style
  81. int m_iTypeButton; //Style bottom (Arrow,Normal,Link)
  82. int m_iSelected;
  83. int m_iStyleArrow;
  84. HICON m_hicon[3];
  85. LPCSTR m_lpMsg;
  86. BOOL m_viewImage;
  87. BOOL m_ViewText;
  88. int m_iResMenu;
  89. BOOL m_iMenuActivo;
  90. COLORREF m_clrface;
  91. CSize m_szButton;
  92. BOOL m_ReposWindow;
  93. BOOL m_bIsDark;
  94. // *******************************************************
  95. public:
  96. HMENU m_hMenu;
  97. protected:
  98. //{{AFX_MSG(CSButton)
  99. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  100. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  101. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  102. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  103. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  104. afx_msg void OnTimer(UINT nIDEvent);
  105. afx_msg void OnSysColorChange( );
  106. //}}AFX_MSG
  107. DECLARE_MESSAGE_MAP()
  108. };
  109. /////////////////////////////////////////////////////////////////////////////
  110. //{{AFX_INSERT_LOCATION}}
  111. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  112. #endif // !defined(AFX_SBUTTON_H__94947860_0E28_43E3_9F81_E966EF769ABE__INCLUDED_)