#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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复