控件–Static-WindowsAPI论坛-WindowsAPI-津桥芝士平台

控件–Static

使用WindowsAPI,创建一个static控件:

#include <windows.h>
#include <CommCtrl.h>

#pragma comment(lib, "comctl32.lib")

// 窗口过程函数
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 
{
    switch (uMsg) 
    {
    case WM_CREATE:
        // 创建 STATIC 控件
        CreateWindow(
            TEXT("STATIC"),           // 控件类名
            TEXT("Hello, UNICODE!"), // 控件文本
            WS_VISIBLE | WS_CHILD,    // 控件样式
            10, 10,                   // x, y
            200, 30,                  // 宽度和高度
            hwnd,                     // 父窗口句柄
            NULL,                     // 控件 ID
            ((LPCREATESTRUCT)lParam)->hInstance, // 实例句柄
            NULL                      // 附加参数
        );
        break;

    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

// WinMain 函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{
    // 注册窗口类
    const wchar_t CLASS_NAME[] = L"Sample Window Class";

    WNDCLASS wc = {};
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);

    RegisterClass(&wc);

    // 创建窗口
    HWND hwnd = CreateWindowEx(
        0,
        CLASS_NAME,
        L"Static Control",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, 300, 200,
        NULL,
        NULL,
        hInstance,
        NULL
    );

    // 显示窗口
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    // 消息循环
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) 
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}

样式:

image

请登录后发表评论

    没有回复内容