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

    技术2022-07-13  76

    界面如下 主要代码

    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); //显示系统时间 }
    Processed: 0.014, SQL: 9