c++ - 从使用 glfw 创建的窗口中删除最大化按钮

标签 c++ winapi win32-process glfw

如何从使用 glfwopenWindow 函数调用创建的窗口中删除最大化按钮?

目前,我正在做的是:

windowHandle = GetForegroundWindow();
long Style = GetWindowLong(windowHandle, GWL_STYLE);
Style ^= WS_MAXIMIZEBOX;
SetWindowLong(windowHandle, GWL_STYLE, WS_MAXIMIZEBOX);

在哪里,我获取窗口句柄,然后切换最大化位。然后我重新应用窗口样式。但这不起作用,它使窗口完全空白,没有任何按钮或标题栏。有没有办法删除最大化按钮。我不想在调用调整大小函数时更改窗口大小

最佳答案

您的代码有问题,因为您没有传回旧样式,因此清除了除 WS_MAXIMIZEBOX 之外的所有样式标志,它应该显示为:

windowHandle = GetForegroundWindow();
long Style = GetWindowLong(windowHandle, GWL_STYLE);
Style &= ~WS_MAXIMIZEBOX; //this makes it still work when WS_MAXIMIZEBOX is actually already toggled off
SetWindowLong(windowHandle, GWL_STYLE, Style);

此外,如果您计划 future 实现 x64 兼容性,您应该真正使用基于 GetWindowlongPtr 的函数

关于c++ - 从使用 glfw 创建的窗口中删除最大化按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8034053/

相关文章:

c++ - 永远不会使用 ifstream (cpp) 达到 eof

c# - 以编程方式从 PC 识别连接的设备是否为 Android

c - 在c中操作LPCWSTR

C++ CALLBACK函数类型

c# - 如何在不使用 SendMessage 的情况下将 "Message"发送到 .Net 中的另一个进程?

c++ - 如何避免许多 #ifdef 用于记录语句

c++ - 使用 fork() 的子和父 pid;

c++ - ARRAYSIZE C++ 宏 : how does it work?

c++ - 如何创建加密的挂载文件夹

c++ - 统一2个空间内存