【问题标题】:Winapi - changing window style ,some macros cause window to not display at allWinapi - 改变窗口样式,一些宏导致窗口根本不显示
【发布时间】:2021-12-18 15:31:42
【问题描述】:

我正在使用 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
    );

【问题讨论】:

  • WNDCLASSEX 中的样式成员用于类样式(以 CS_ 开头,请阅读有关它们的文档)。窗口样式可以与 CreateWindow 一起使用。
  • 好的,谢谢,但是如何让我的主窗口不能调整大小呢?
  • 在创建窗口时使用 wndstyles(以及可选的 extstyles)参数
  • 你能给我一个链接吗?我找不到任何关于 wndstyles 的信息。
  • 您正在注册一个窗口类,但随后显示实例化不同窗口类的代码。我觉得这个问题有很多遗漏。

标签: c++ winapi


【解决方案1】:

是否要禁用调整大小?如果是这样,我建议您在调用 CreateWindow 函数时尝试从窗口样式中删除 WS_THICKFRAME 样式。

这是我的代码:

WS_OVERLAPPEDWINDOW^ WS_THICKFRAME

【讨论】:

  • @Cahir7 你有任何更新吗?如果您的案例已经解决,请帮忙标记答案。如果没有,请随时与我们联系。您的理解与合作将不胜感激。
猜你喜欢
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多