Создадим простенькие часы на Си:
Пример:

Код:
#include <windows.h>
#include <stdio.h>
#include <time.h>

#define ID_TIMER  100 // Наш таймер, т.е. идентификатор таймера
HWND hwndTime;
SYSTEMTIME currtm;
char buf[12];

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
	switch(Message) {
    case WM_TIMER:
                        // Прерывание от таймера
    	if(wParam == ID_TIMER) {
    	  GetLocalTime(&currtm); // Получаем локальное время
    	  sprintf(buf, "%02d:%02d:%02d", currtm.wHour, currtm.wMinute, currtm.wSecond); // Записываем в строку
    	  SetWindowText(hwndTime, buf); // Выводим в лейбл/статик
    	}
    	  
    break;
    case WM_CREATE:
    	hwndTime = CreateWindow("STATIC","", WS_CHILD | WS_VISIBLE, 10, 10, 100, 20, hwnd, NULL, NULL, NULL); // Создаём лейбл
    	SetTimer(hwnd, ID_TIMER, 1000,  (TIMERPROC) NULL);  // Устанавливаем таймер, который прерывается каждыйе 1000 мсек.
    break;
    
    case WM_DESTROY: {
    	KillTimer(hwnd, ID_TIMER);  // Удаляем таймер
    	PostQuitMessage(0);  // Выходим
    	break;
    }    
    default:
    	return DefWindowProc(hwnd, Message, wParam, lParam);
	}
	return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
	WNDCLASSEX wc;
	HWND hwnd;
	MSG msg;

	memset(&wc,0,sizeof(wc));
	wc.cbSize     = sizeof(WNDCLASSEX);
	wc.lpfnWndProc	 = WndProc;
	wc.hInstance	 = hInstance;
	wc.hCursor     = LoadCursor(NULL, IDC_ARROW);	
	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
	wc.lpszClassName = "WindowClass";
	wc.hIcon     = LoadIcon(NULL, IDI_APPLICATION);
	wc.hIconSm     = LoadIcon(NULL, IDI_APPLICATION);

	if(!RegisterClassEx(&wc)) {
    MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
    return 0;
	}

	hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Clock",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    200,
    200,
    NULL,NULL,hInstance,NULL);

	if(hwnd == NULL) {
    MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
    return 0;
	}

	while(GetMessage(&msg, NULL, 0, 0) > 0) { 
    TranslateMessage(&msg);
    DispatchMessage(&msg);
	}
	return msg.wParam;
}

Результат работы программы
https://i.ibb.co/0Yj54GT/timer-result-08-04-17-06-2021-min.jpg