怎么在vs里面实现在界面上显示当时时间
时间: 2023-07-14 19:13:38 浏览: 89
在 Visual Studio 中实现在界面上显示当前时间,可以使用 Windows 系统提供的 GetLocalTime 函数获取当前本地时间,然后将其显示在界面上。
以下是一个简单的示例代码:
```c++
#include <Windows.h>
// 获取当前本地时间,并将其格式化为字符串
std::wstring GetCurrentTime()
{
SYSTEMTIME st;
GetLocalTime(&st);
wchar_t buf[32];
swprintf_s(buf, L"%02d:%02d:%02d", st.wHour, st.wMinute, st.wSecond);
return buf;
}
// 将当前时间显示在窗口上
void ShowCurrentTime(HWND hWnd)
{
std::wstring timeStr = GetCurrentTime();
SetWindowText(hWnd, timeStr.c_str());
}
// 在窗口创建时启动定时器
void OnCreate(HWND hWnd)
{
// 启动一个定时器,每隔1秒钟更新一次时间
SetTimer(hWnd, 1, 1000, NULL);
}
// 处理定时器消息,在定时器触发时更新时间
void OnTimer(HWND hWnd, UINT_PTR nTimerId)
{
if (nTimerId == 1) {
ShowCurrentTime(hWnd);
}
}
// 窗口过程函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
OnCreate(hWnd);
break;
case WM_TIMER:
OnTimer(hWnd, wParam);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// 程序入口函数
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
{
// 创建窗口
const wchar_t CLASS_NAME[] = L"MyWindowClass";
WNDCLASS wc = {};
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;
RegisterClass(&wc);
HWND hWnd = CreateWindowEx(
0,
CLASS_NAME,
L"Window Title",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL
);
if (hWnd == NULL)
{
return 0;
}
ShowWindow(hWnd, nCmdShow);
// 消息循环
MSG msg = {};
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
```
这个示例程序创建了一个窗口,并在窗口标题栏上显示当前时间。它使用了 Windows API 中的定时器功能,每隔一秒钟更新一次时间。你可以根据自己的需求将其修改为自己的程序。