欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MFC 关于系统时间获取

程序员文章站 2022-05-24 12:30:06
...

关于MFC 创建获取系统当前时间,自动运行例子:

  1. // 构造函数中添加
public:
	C串口通讯Dlg(CWnd* pParent = NULL);	// 标准构造函数
	void ThreadRun();//时间自动添加函数
	static UINT ThreadTimer(LPVOID pParam);
	HANDLE m_ThreadKill;
	HANDLE m_ThreadKillCheck;
  1. 在主程序的初始化函数中添加
 BOOL C串口通讯Dlg::OnInitDialog() 
{

		//获取系统当前时间
	CString strTime;
	CString filename;
	CTime tm;
	tm = CTime::GetCurrentTime();         //获取当前系统时间
	strTime = tm.Format("%Y-%m-%d %H:%M:%S");   //格式化系统时间。
	tt = tm.Format("%d");
	SetDlgItemText(IDC_EDIT3, strTime);

	/
	m_ThreadKill = CreateEvent(NULL, TRUE, FALSE, NULL);
	m_ThreadKillCheck = CreateEvent(NULL, TRUE, FALSE, NULL);

	::AfxBeginThread(ThreadTimer, LPVOID(this), THREAD_PRIORITY_HIGHEST);

}

 3. 添加功能函数中的代码:
 UINT C串口通讯Dlg::ThreadTimer(LPVOID pParam)
{
	C串口通讯Dlg *pThis = (C串口通讯Dlg*)pParam;

	pThis->ThreadRun();

	return 0;
}
void C串口通讯Dlg::ThreadRun()
{
	::SetThreadIdealProcessor(::GetCurrentThread(), 0);

	::ResetEvent(m_ThreadKill);
	::ResetEvent(m_ThreadKillCheck);

	while (true)
	{
		DWORD dwEvent = ::WaitForSingleObject(m_ThreadKill, 1000); //1000ms Sleep
		if (dwEvent != WAIT_TIMEOUT)
			break;
		CTime tm;
		CString strTime;
		tm = CTime::GetCurrentTime();         //获取当前系统时间
		strTime = tm.Format("%Y-%m-%d %H:%M:%S");   //格式化系统时间。
		SetDlgItemText(IDC_EDIT3, strTime);
	}
	::SetEvent(m_ThreadKillCheck);
}

实现功能的图片:
MFC 关于系统时间获取