• 1st step for Chinese Chess Program- Standard WinMain


    #include "windows.h"
    
    
    LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
    
    //Stand WinMain
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
        //1. design WindowClass
        WNDCLASSEX wndClass;
        
        LPCTSTR szAppName = L"OFWIN";
        wndClass.cbSize = sizeof(WNDCLASSEX);
        wndClass.style = CS_HREDRAW | CS_VREDRAW;
        wndClass.lpfnWndProc = WindowProc;
        wndClass.cbClsExtra = 0;
        wndClass.cbWndExtra = 0;
        wndClass.hInstance = hInstance;
        wndClass.hIcon = LoadIcon(0, IDI_APPLICATION);
        wndClass.hCursor = LoadCursor(0, IDC_ARROW);
        wndClass.hbrBackground = static_cast<HBRUSH>(GetStockObject(GRAY_BRUSH));
        wndClass.lpszMenuName = 0;
        wndClass.lpszClassName = szAppName;
        wndClass.hIconSm = 0;
        
        
        //2. register
        RegisterClassEx(&wndClass);
        
        //3. create Window
        HWND hWnd = CreateWindow(
            szAppName,
            L"A standard WinMain Frame",
            WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            0,
            0,
            hInstance,
            0    
            );
        
        //4. show Window
        ShowWindow(hWnd, nCmdShow);
        UpdateWindow(hWnd);
        
        //5. message routine
        MSG msg;
        while (GetMessage(&msg, 0, 0, 0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    
        return static_cast<int>(msg.wParam);
    }
    
    
    LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        switch (uMsg)
        {
            //case WM_PAINT:
                //break;
            case WM_DESTROY:
                PostQuitMessage(0);
                break;
            default:
                return DefWindowProc(hWnd, uMsg, wParam, lParam);
        }
        
        return 0;
    }

    And the 2nd step is drawing out the whole Layout of Chinese chess.

  • 相关阅读:
    七牛云李意扬:如何收集 Go 实时覆盖率丨ECUG Meetup 回顾
    OpenTelemetry 微服务链路追踪
    空接口
    安全规则集合
    采用最快回应
    Golang单元测试实战
    源码 kratos 配置热加载分析
    烟花 光影
    控制Repeater显示列数
    基本代码安全知识
  • 原文地址:https://www.cnblogs.com/harrysun/p/3194570.html
Copyright © 2020-2023  润新知