MFC按下按钮保存当前系统时间到txt, 支持用键盘按键按下记录时间

界面如下
在这里插入图片描述主要代码

BOOL CTimeRecordingDlg::OnInitDialog()
{
// TODO: 在此添加额外的初始化代码
	m_oFont.CreatePointFont(300, _T("隶书"));
	Edit.SetFont(&m_oFont);
	CRect rect;
	Edit.GetClientRect(rect);
	OffsetRect(&rect, 0, 2);
	Edit.SendMessage(EM_SETRECT, 0, (LPARAM)&rect);


	CString strTime;
	CTime tm;
	tm = CTime::GetCurrentTime();         //获取当前系统时间
	//strTime = tm.Format("%y年%m月%d日 %X");
	strTime = tm.Format("%X");
	SetDlgItemText(IDC_Time, strTime);        //初始化编辑框显示
	SetTimer(1, 1000, NULL);         //启动定时器
	m_Box.AddString(_T("Happy"));
	m_Box.AddString(_T("Surprise"));
	m_Box.AddString(_T("Disgust"));
	m_Box.AddString(_T("Fear"));
	m_Box.AddString(_T("Sadness"));
	m_Box.SetCurSel(0);
	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}
void CTimeRecordingDlg::OnBnClickedMouth()
{
	CString tempstr;
	CString str1;
	CString tester;
	CFile file;
	CTime tm;
	CString path;
	CString str;
	CString Box;
	GetDlgItemText(IDC_EDIT1, path);
	GetDlgItemText(IDC_EDIT2, tester);
	GetDlgItemText(IDC_COMBO1, Box);
	GetDlgItem(IDC_Mouth)->GetWindowText(tempstr);
	if (path == "")
	{
		MessageBox(_T("请先选择保存的文件"));
	}
	else {
		/*if (tempstr == "开始")
		{
			GetDlgItem(IDC_Mouth)->SetWindowText(_T("停止"));*/
			tm = CTime::GetCurrentTime();
			str1 = tm.Format("%Y年%m月%d日%X");
			file.Open(path, CFile::modeReadWrite);
			file.SeekToEnd();
			WORD unicode = 0xFEFF;  //这句重要,注意这里是F E FF,中间有个E
			file.Write(&unicode, 2);  //这句重要
			//file.Write(_T("被试:"), wcslen(_T("开始时间:")) * sizeof(wchar_t));
			//str = _T("被试") + tester+_T("-") + Box + _T("\t有嘴角动作\t");
			str = _T("被试") + tester + _T("-") + Box + _T("\t嘴角\t");
			file.Write(str, wcslen(str) * sizeof(wchar_t));
			//file.Write(_T("开始时间:"), wcslen(_T("开始时间:")) * sizeof(wchar_t));
			file.Write(str1, wcslen(str1) * sizeof(wchar_t));
			file.Write(_T("\n"), 2);
			file.Close();
	   }
}

键盘响应事件

void CTimeRecordingDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	CDialogEx::OnChar(nChar, nRepCnt, nFlags);
	if (nChar == 86)//V
	{
		OnBnClickedHappy();
	}
	if (nChar ==66)//B
	{
		OnBnClickedEyebrow();
	}
	if (nChar == 78)//N
	{
		OnBnClickedSurprise();
	}
	if (nChar == 77)//M
	{
		OnBnClickedMouth();
		MessageBox(_T("M键按下"));
	}



}


BOOL CTimeRecordingDlg::PreTranslateMessage(MSG* pMsg)
{
	// TODO: 在此添加专用代码和/或调用基类
	SendMessage(pMsg->message, pMsg->wParam);

	return CDialogEx::PreTranslateMessage(pMsg);
}

定时器让编辑框显示时间,1s刷新一次

void CTimeRecordingDlg::OnTimer(UINT_PTR nIDEvent)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	CDialogEx::OnTimer(nIDEvent);
	CString strTime;
	CTime tm;
	tm = CTime::GetCurrentTime();
	//strTime = tm.Format("%Y-%m-%d %H:%M:%S");
	strTime = tm.Format("%H:%M:%S");
	SetDlgItemText(IDC_Time, strTime);        //显示系统时间
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值