簡體   English   中英

Winapi - 改變窗口樣式,一些宏導致窗口根本不顯示

[英]Winapi - changing window style ,some macros cause window to not display at all

我正在使用 winapi 編寫一個簡單的桌面應用程序,當我使用宏在 WNDCLASSEXW 對象或 CreateWindowExW 函數中輸入窗口樣式時,其中一些會導致我的窗口根本不顯示。 這是我用於我的對象和函數代碼的代碼。 數字 0 有效,但那些無效,例如: WS_CAPTION WS_SYSMENU WS_MINIMIZEBOX WS_MAXIMIZEBOX

什么是修復,以便我可以禁用調整大小?

wcex.style

是我輸入的地方。

ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASSEXW wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);

    wcex.style          = WS_OVERLAPPED;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT1));
    wcex.hCursor        = LoadCursor(nullptr, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT1);
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

    return RegisterClassExW(&wcex);
} 

和功能代碼:

HWND g_Htext = CreateWindowExW(
        0,                              // Optional window styles.
        L"STATIC",                     // Window class
        L"Learn to Program Windows",    // Window text
        SS_LEFT,            // 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
    );

是否要禁用調整大小? 如果是這樣,我建議您可以嘗試在調用 CreateWindow 函數時從窗口樣式中刪除WS_THICKFRAME樣式。

這是我的代碼:

WS_OVERLAPPEDWINDOW^ WS_THICKFRAME

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM