空白窗口的创建(MSDN版的空项目)

来源:互联网 发布:c语言visit函数 编辑:程序博客网 时间:2024/06/17 13:19

这是来自微软官网的Windows程序设计简明教程(https://msdn.microsoft.com/en-us/library/windows/desktop/ff381409(v=vs.85).aspx)

#ifndef UNICODE#define UNICODE#endif #include <windows.h>LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow){    // Register the window class.    const wchar_t CLASS_NAME[]  = L"Sample Window Class";        WNDCLASS wc = { };    wc.lpfnWndProc   = WindowProc;    wc.hInstance     = hInstance;    wc.lpszClassName = CLASS_NAME;    RegisterClass(&wc);    // Create the window.    HWND hwnd = CreateWindowEx(        0,                              // Optional window styles.        CLASS_NAME,                     // Window class        L"Learn to Program Windows",    // Window text        WS_OVERLAPPEDWINDOW,            // Window style        // Size and position        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,        NULL,       // Parent window            NULL,       // Menu        hInstance,  // Instance handle        NULL        // Additional application data        );    if (hwnd == NULL)    {        return 0;    }    ShowWindow(hwnd, nCmdShow);    // Run the message loop.    MSG msg = { };    while (GetMessage(&msg, NULL, 0, 0))    {        TranslateMessage(&msg);        DispatchMessage(&msg);    }    return 0;}LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){    switch (uMsg)    {    case WM_DESTROY:        PostQuitMessage(0);        return 0;    case WM_PAINT:        {            PAINTSTRUCT ps;            HDC hdc = BeginPaint(hwnd, &ps);            FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1));            EndPaint(hwnd, &ps);        }        return 0;    }    return DefWindowProc(hwnd, uMsg, wParam, lParam);}


阅读全文
0 0