16,470
社区成员
发帖
与我相关
我的任务
分享
#pragma once
#include "DemoDlg.h"
// CButtonEx
class CButtonEx : public CButton
{
DECLARE_DYNAMIC(CButtonEx)
public:
CButtonEx();
virtual ~CButtonEx();
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
BOOL bPressed;
afx_msg void OnTimer(UINT_PTR nIDEvent);
public:
CDemoDlg *pDlg;
};
// ButtonEx.cpp : 实现文件
//
#include "stdafx.h"
#include "Demo.h"
#include "ButtonEx.h"
// CButtonEx
IMPLEMENT_DYNAMIC(CButtonEx, CButton)
CButtonEx::CButtonEx()
: bPressed(FALSE)
{
pDlg = (CDemoDlg *)AfxGetApp()->GetMainWnd();
}
CButtonEx::~CButtonEx()
{
}
BEGIN_MESSAGE_MAP(CButtonEx, CButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_TIMER()
END_MESSAGE_MAP()
// CButtonEx 消息处理程序
void CButtonEx::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
bPressed = TRUE;
SetTimer(1,1000,NULL);
CButton::OnLButtonDown(nFlags, point);
}
void CButtonEx::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
bPressed = FALSE;
KillTimer(1);
CButton::OnLButtonUp(nFlags, point);
}
void CButtonEx::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int nValue = pDlg->GetDlgItemInt(IDC_EDIT1);
if (bPressed)
{
++nValue;
pDlg->SetDlgItemInt(IDC_EDIT1,nValue);
}
CButton::OnTimer(nIDEvent);
}