当前位置:C++技术网 > 资讯 > MFC获取和显示电脑开机运行了多长时间

MFC获取和显示电脑开机运行了多长时间

更新时间:2016-01-24 22:07:27浏览次数:1+次

原文请看《win32获取和显示电脑开机运行了多长时间

在头文件中:

INT d,h,m,s,ms;
	LPWSTR tip;
实现文件的构造函数:
tip=new TCHAR[1024];
其他地方:
void CGetTickCountDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于绘制的设备上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使图标在工作区矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 绘制图标
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		PAINTSTRUCT ps;
		CDC *pDC=BeginPaint(&ps);
		pDC->TextOutW(2,30,tip);
		EndPaint(&ps);
		CDialogEx::OnPaint();
	}
}
void CGetTickCountDlg::OnTimer(UINT_PTR nIDEvent)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	DWORD dwTime=GetTickCount();
	d=dwTime/(24*60*60*1000);
	dwTime%=24*60*60*1000;
	//切割小时数          
	h = dwTime/3600/1000;   
	dwTime %=3600*1000; 
	//切割分钟数     
	m = dwTime /60/1000;      	
	dwTime %=60*1000;       
	//切割秒数和毫秒数     
	s = dwTime/1000;    
	ms = dwTime%1000; 
	wsprintf(tip,_T("已开机:%d天%d小时%d分%d秒%d"),d,h,m,s,ms);
	//wsprintf(tip.AllocSysString(),_T("已开机:%d天%d小时%d分%d秒%d"),d,h,m,s,ms);
	Invalidate();
	CDialogEx::OnTimer(nIDEvent);
}


int CGetTickCountDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CDialogEx::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO:  在此添加您专用的创建代码
	SetTimer(1,50,NULL);
	return 0;
}
代码实现: