#include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <conio.h> SMALL_RECT SizeOfWindow(HANDLE hConsoleOutput) { CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBufferInfo(hConsoleOutput, &info); return info.srWindow; } int main()//1 { HANDLE handle_out; CONSOLE_SCREEN_BUFFER_INFO info; handle_out = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(handle_out, &info); SMALL_RECT rect =SizeOfWindow(handle_out); COORD size={rect.Right+1,rect.Bottom+1};//2 //SetConsoleWindowInfo(handle_out, true, &rect); SetConsoleScreenBufferSize(handle_out, size);//3 CloseHandle(handle_out); return 0; }
1---->取消滚动条的显示
2---->定义缓冲区尺寸和窗口坐标一样大
3---->设置缓冲区尺寸,如果屏蔽了就会出现滚动条
做了一个获取控制台窗口尺寸的函数:
SMALL_RECT SizeOfWindow(HANDLE hConsoleOutput) { CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBufferInfo(hConsoleOutput, &info); return info.srWindow; }
应用举例:
#include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <conio.h> SMALL_RECT SizeOfWindow(HANDLE hConsoleOutput); int main() { HANDLE handle_out; handle_out = GetStdHandle(STD_OUTPUT_HANDLE); SMALL_RECT rc; system("cls");//1 rc=SizeOfWindow(handle_out); printf("%d,%d,%d,%d\n",rc.Left,rc.Top,rc.Right,rc.Bottom); CloseHandle(handle_out); return 0; } SMALL_RECT SizeOfWindow(HANDLE hConsoleOutput) { CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBufferInfo(hConsoleOutput, &info); return info.srWindow; }
说明:
1---->清屏函数,头文件stdlib.h
获取控制台窗口的桌面位置:
#include "stdio.h" #include "windows.h" void main()//1 { HWND hwnd=GetForegroundWindow();//2 RECT rect; GetWindowRect(hwnd,&rect);//4 printf("%d,%d\n",rect.left,rect.top);//3 }
说明:
1---->与控制台也没什么关系
2---->获取当前活动窗口句柄
3---->输出窗口左上角坐标
4---->获得的是桌面的分辨率坐标,控制台默认的坐标是字符个数
问题:取消滚动条的窗口显示之前的一段时间会出现滚动条,如何直接出现无滚动条的窗口?
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
不错不错哦