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

对话框与窗口

开发平台:

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. #include "stdafx.h"
  23. #include "GuiButtonTimer.h"
  24. #ifdef _DEBUG
  25. #undef THIS_FILE
  26. static char THIS_FILE[] = __FILE__;
  27. #define new DEBUG_NEW
  28. #endif
  29. //////////////////////////////////////////////////////////////////////
  30. // Construction/Destruction
  31. //////////////////////////////////////////////////////////////////////
  32. CGuiButtonTimer::CGuiButtonTimer()
  33. {
  34. bPress      = FALSE;
  35. m_nInterval = 50;
  36. }
  37. CGuiButtonTimer::~CGuiButtonTimer()
  38. {
  39. }
  40. BEGIN_MESSAGE_MAP(CGuiButtonTimer, CGuiToolButton)
  41. ON_WM_LBUTTONDOWN()
  42. ON_WM_LBUTTONUP()
  43. ON_WM_TIMER()
  44. END_MESSAGE_MAP()
  45. void CGuiButtonTimer::OnLButtonUp(UINT nFlags, CPoint point)
  46. {
  47. // TODO: Add your message handler code here and/or call default
  48. if (!bPress)
  49. return;
  50. bPress = FALSE;
  51. KillTimer(1);
  52. // CGuiNormalButton::OnLButtonUp(nFlags, point);
  53. }
  54. void CGuiButtonTimer::OnLButtonDown(UINT nFlags, CPoint point)
  55. {
  56. // TODO: Add your message handler code here and/or call default
  57. if (bPress) 
  58. return;
  59. bPress = TRUE;
  60. SetTimer(1, m_nInterval, NULL);
  61. // CGuiNormalButton::OnLButtonDown(nFlags, point);
  62. }
  63. void CGuiButtonTimer::OnTimer(UINT nIDEvent)
  64. {
  65. // TODO: Add your message handler code here and/or call default
  66. if (bPress == FALSE) 
  67. return;
  68. CRect rc;
  69. CPoint pt(GetMessagePos());
  70. ScreenToClient(&pt);
  71. GetClientRect(rc);
  72. if (rc.PtInRect(pt))
  73. {
  74. CWnd* pParent = GetParent();
  75. if (IsWindowEnabled())
  76. pParent->SendMessage(WM_COMMAND, GetDlgCtrlID());
  77. // bPress=FALSE;
  78. // KillTimer(1);
  79. }
  80. else
  81. {
  82. bPress = FALSE;
  83. KillTimer(1);
  84. // CGuiNormalButton::OnTimer(nIDEvent);
  85. }
  86. }