c++怎么设置控制台窗口的起始大小
c++如何设置控制台窗口的起始大小 ?
我知道是用下面两个函数,SetConsoleScreenBufferSize(hHnd,size);SetConsoleWindowInfo(hHnd,true,&rc);
第一个是设置缓冲区大小的,第二个是设置窗口大小的。
但是设置窗口大小的函数过老是不起作用。一直是80*25,好像无法更改,除非手动支更改。
当然,必须要用代码去更改。
请高手赐教。
------解决方案--------------------
用dos命令简单啊写行下面的就行了
system("mode con cols=100 lines=100");//改变宽高
system("color fc");//改变颜色
------解决方案--------------------
我用就行,lz什么问题
------解决方案--------------------
我知道是用下面两个函数,SetConsoleScreenBufferSize(hHnd,size);SetConsoleWindowInfo(hHnd,true,&rc);
第一个是设置缓冲区大小的,第二个是设置窗口大小的。
但是设置窗口大小的函数过老是不起作用。一直是80*25,好像无法更改,除非手动支更改。
当然,必须要用代码去更改。
请高手赐教。
------解决方案--------------------
用dos命令简单啊写行下面的就行了
system("mode con cols=100 lines=100");//改变宽高
system("color fc");//改变颜色
------解决方案--------------------
我用就行,lz什么问题
------解决方案--------------------
- C/C++ code
GetConsoleScreenBufferInfo 获取控制台窗口信息 GetConsoleTitle 获取控制台窗口标题 ScrollConsoleScreenBuffer 在缓冲区中移动数据块 SetConsoleScreenBufferSize 更改指定缓冲区大小 SetConsoleTitle 设置控制台窗口标题 SetConsoleWindowInfo 设置控制台窗口信息 此外,还有窗口字体、显示模式等控制函数,这里不再细说。下列举一个示例,程序如下: #include #include #include void main() { HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 获取标准输出设备句柄 CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口缓冲区信息 GetConsoleScreenBufferInfo(hOut, bInfo ); // 获取窗口缓冲区信息 char strTitle[255]; GetConsoleTitle(strTitle, 255); // 获取窗口标题 printf("当前窗口标题是:%s\n", strTitle); _getch(); SetConsoleTitle("控制台窗口操作"); // 获取窗口标题 _getch(); COORD size = {80, 25}; SetConsoleScreenBufferSize(hOut,size); // 重新设置缓冲区大小 _getch(); SMALL_RECT rc = {0,0, 80-1, 25-1}; // 重置窗口位置和大小 SetConsoleWindowInfo(hOut,true ,&rc); CloseHandle(hOut); // 关闭标准输出设备句柄 } 需要说明的是,控制台窗口的原点坐标是(0, 0),而最大的坐标是缓冲区大小减1,例如当缓冲区大小为80*25时,其最大的坐标是(79, 24)。
------解决方案--------------------
嗯,Windows的控制台如果是CMD的话,应该是可以设置的。但是如果你用command或者已经运行了16位程序切换到虚拟DOS方式就不能设了。这个时候只有调用BIOS的INT 10h显示中断服务(这个当然是Windows虚拟的)来切换其它的显示模式。
VGA支持80x25、80x43、80x30、80x50几种。
VESA支持80x60、132x25、132x50、132x60之类的……
具体的方法你要参考IBM PC的VGA编程手册或者VESA BIOS Extension(VBE)文档
因为这个DOS模式是严格模仿PC行为的,因为有很多BIOS服务之类的都是依赖这个VGA文本显示方式的。不像Linux那种终端,可以随便设计大小,因为它的终端设计和具体硬件是分离的。
------解决方案--------------------