有没有更好的方法来删除标题栏上的所有三个按钮并使用Windows API删除滚动条?

下面列出了删除标题栏上所有三个按钮并删除我在“Windows 7”中使用的滚动条的代码:

#define WINVER 0x0501 // WinXP and UP #include  int main ( void ) { //Get a console handle HWND ConsoleWindow = GetConsoleWindow(); //Change Settings SetWindowLong (ConsoleWindow, GWL_STYLE, WS_THICKFRAME); SetWindowLong (ConsoleWindow, GWL_STYLE, WS_CAPTION); SetWindowPos (ConsoleWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_SHOWWINDOW); //Resize system ("mode con cols=75 lines=50"); system ("pause>nul"); return 0; } 

编译命令:

 mingw32-gcc.exe -c "Console_Graphing_10.c" -o "Console_Graphing_10.o" mingw32-gcc.exe -o "Console_Graphing_10.exe" "Console_Graphing_10.o" 

但这不能删除标题栏上的所有三个按钮并删除“Windows XP”中的滚动条

有没有更好的代码来实现这一目标? 谢谢。

你可以试试这个:

 #define WINVER 0x0501 // WinXP and UP #include  int main ( void ) { LONG style; HWND ConsoleWindow; ConsoleWindow = GetConsoleWindow(); style = GetWindowLong(ConsoleWindow, GWL_STYLE); style &= ~( WS_MINIMIZEBOX | WS_SYSMENU ); SetWindowLongPtr(ConsoleWindow, GWL_STYLE, style); SetWindowPos(ConsoleWindow, NULL, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER); system ("pause>nul"); return 0; } 

所有按钮都将被删除:

在此处输入图像描述

我的评论 发现这个我认为不可能……

 void ClearButtons(void) { int index = WS_BORDER; unsigned int a = (unsigned int)((WS_BORDER | WS_CAPTION) & (~WS_ICONIC)); LONG_PTR lPtr; HWND hWnd = GetActiveWindow(); lPtr = GetWindowLongPtr(hWnd, index); SetWindowLongPtr(hWnd, GWL_STYLE, a); } 

注意:编译32位Windows时,SetWindowLongPtr定义为对SetWindowLong函数的调用。 因此,应该使用Windows 7或XP(没有测试)

测试图像:
在此处输入图像描述