我曾经遇到同样的问题,在网上找不到有效具体的解决方案,后来去WSDN看了具体的文档发现一个解决方案,发到这里给遇到同样问题的人,希望能对大家有所帮助。
可以使用SetWindowLongPtrA()函数修改窗口样式:#include
SetWindowLongPtrA(
GetConsoleWindow(),
GWL_STYLE,
GetWindowLongPtrA(GetConsoleWindow(),GWL_STYLE)
& ~WS_SIZEBOX & ~WS_MAXIMIZEBOX & ~WS_MINIMIZEBOX
);
第一个参数获取了控制台窗口句柄
第二个参数指定修改所获得的窗口的窗口样式
第三个参数代表所想应用的窗口的具体样式,先用GetWindowLongPtrA(GetConsoleWindow(), GWL_STYLE)获取控制台窗口的原样式,再在原样式的基础上添加~WS_SIZEBOX(代表不可改变窗口大小),~WS_MAXIMIZEBOX(代表隐藏窗口右上角最大化按钮)和~WS_MINIMIZEBOX(代表隐藏窗口右上角最小化按钮)
最终得到的控制台窗口边缘无法拉动,隐藏了大小化按钮使得窗口大小不可改变(但是仍然可以通过右键窗口头选择属性进行修改)。这个函数理论上可以修改包含控制台窗口在内的Windows窗口属性。如果还有疑问的话,可以自己上WSDN查看第一手的文档。
Windows Styles 除了上面介绍的样式外其他可以修改的窗口样式