Relógio em modo gráfico usando windows.h, stdio.h e time.h

Relógio
#include <windows.h>
#include "resource.h"
#include <stdio.h>
#include <time.h>

LRESULT CALLBACK ProcJan(HWND, UINT, WPARAM, LPARAM);
char szNomeAplic[] = "Principal";

HMENU menuP, sMenu;

int WINAPI WinMain(HINSTANCE hCopia, HINSTANCE hCopiaAnt, LPSTR szLinhaCmd, int iCmdMostrar) {
    HWND     hjan;
    MSG      msg;
    WNDCLASS classjan;

    classjan.style         = CS_HREDRAW | CS_VREDRAW;
    classjan.lpfnWndProc   = ProcJan;
    classjan.cbClsExtra    = 0;
    classjan.cbWndExtra    = 0;
    classjan.hInstance     = hCopia;
    classjan.hIcon         = LoadIcon(hCopia, IDI_ICON);
    classjan.hCursor       = LoadCursor(NULL, IDC_ARROW);
    classjan.hbrBackground = GetSysColorBrush(COLOR_GRADIENTINACTIVECAPTION);
    classjan.lpszMenuName  = NULL;
    classjan.lpszClassName = szNomeAplic;

    if(!RegisterClass(&classjan)) {
        return 0;
    }

    hjan = CreateWindow(szNomeAplic, "Janela Principal", WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT, CW_USEDEFAULT, 500, 300,
                        NULL, NULL, hCopia, NULL);

    ShowWindow(hjan, iCmdMostrar);
    UpdateWindow(hjan);

    while(GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage (&msg);
    }

    return msg.wParam;
}

LRESULT CALLBACK ProcJan(HWND hjan, UINT iMsg, WPARAM wParam, LPARAM lParam) {

    switch(iMsg) {
        case WM_CREATE:
            menuP = CreateMenu();
            sMenu = CreateMenu();

            AppendMenu(menuP, MF_POPUP, (UINT_PTR) sMenu, "Arquivo");
            AppendMenu(menuP, MF_STRING, NULL, "Editar");
            AppendMenu(menuP, MF_STRING, NULL, "Copiar");
            AppendMenu(menuP, MF_STRING, 1, "Evento");

            AppendMenu(sMenu, MF_STRING, NULL, "SUB 1");
            AppendMenu(sMenu, MF_STRING, NULL, "SUB 2");
            AppendMenu(sMenu, MF_STRING, NULL, "SUB 3");

            SetMenu(hjan, menuP);


            CreateWindow(
                TEXT("static"), TEXT("O Senhor, teu Deus, te despertará um profeta do meio de ti, de teus irmãos, como eu; a ele ouvireis; \nDeuteronomio 18 v15;"),
                WS_VISIBLE | WS_CHILD,
                10, 20, 400, 50,
                hjan, NULL, NULL, NULL
            );

            CreateWindow(
                TEXT("button"), TEXT("Copiar"), WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
                10, 100, 100, 20,
                hjan, NULL, NULL, NULL
            );
            CreateWindow(
                TEXT("button"), TEXT("Recortar"), WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
                120, 100, 100, 20,
                hjan, NULL, NULL, NULL
            );
            CreateWindow(
                TEXT("button"), TEXT("Colar"), WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
                230, 100, 100, 20,
                hjan, NULL, NULL, NULL
            );

            CreateWindow(
                TEXT("button"), TEXT("Executar"), WS_VISIBLE | WS_CHILD,
                10, 140, 100, 20,
                hjan, NULL, NULL, NULL
            );
            CreateWindow(
                TEXT("button"), TEXT("Sair"), WS_VISIBLE | WS_CHILD,
                305, 140, 100, 20,
                hjan, NULL, NULL, NULL
            );

            struct tm *ptr;
            time_t lt;
            lt = time(NULL);
            ptr = localtime(&lt);

            CreateWindow(
                TEXT("static"), asctime(ptr), WS_VISIBLE | WS_CHILD,
                10, 180, 200, 20,
                hjan, NULL, NULL, NULL
            );
            return 0;
        case WM_COMMAND:
            if(LOWORD(wParam)==1) {
                system("notepad");
            }
            return 0;
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
    }
    return DefWindowProc(hjan, iMsg, wParam, lParam);

}

Comentários