有没有更好的方法来删除标题栏上的所有三个按钮并使用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(没有测试)
测试图像: