MFC 通过定时器实现space键的暂停和开始

整体效果预览:()

MFC 通过定时器实现space键的暂停和开始_第1张图片

1. 创建MFC工程项目(基于对话框)

添加static text 和edit control , edit control 的id 分别为IDC_EDIT1 , 并且属性readonly设置为true

添加成员变量:

	int m_nData1;       //  IDC_EDIT1中数据
	BOOL flag = FALSE;  //  标记
	int count=0;        //  计数位

2.添加方法

添加启动定时器方法(点击确定按钮即启动)

MFC 通过定时器实现space键的暂停和开始_第2张图片

双击确定按钮, 在xxxDlg.cpp 页面添加方法体:

void CTimerDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	if(count%2==0)
		SetTimer(1, 1000, NULL);

	//SetTimer(2, 2000, NULL);
	//CDialogEx::OnOK();
}

添加键盘事件: VS2015 工具栏 点击 项目-> 类向导->选择相应的类,如下图

MFC 通过定时器实现space键的暂停和开始_第3张图片

进入xxxDlg.cpp添加函数体:

BOOL CTimerDlg::PreTranslateMessage(MSG* pMsg)
{
	// TODO: 在此添加专用代码和/或调用基类
		if (pMsg->message == WM_KEYDOWN)
		{
			if (pMsg->wParam == VK_SPACE)//空格键
			{
				if (flag == TRUE) {
					flag = FALSE;
				}
				else
				{
					flag = TRUE;
				}
				count++;
			}
		}
	return CDialogEx::PreTranslateMessage(pMsg);
}

添加OnTimer()方法:

void CTimerDlg::OnTimer(UINT_PTR nIDEvent)
{
	if (flag)
	{
		KillTimer(1);
	}
	SetDlgItemInt(IDC_EDIT1, ++m_nData1);
	CDialogEx::OnTimer(nIDEvent);
}

运行即可。

你可能感兴趣的:(MFC,C++,MFC,C++)