c++怎么设置控制台窗口的起始大小

c++怎么设置控制台窗口的起始大小,第1张

1Windows的控制台如果是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)文档

2因为这个DOS模式是严格模仿PC行为的,因为有很多BIOS服务之类的都是依赖这个VGA文本显示方式的。不像Linux那种终端,可以随便设计大小,因为它的终端设计和具体硬件是分离的

3如下参考代码:

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,例如当缓冲区大小为8025时,其最大的坐标是(79, 24)。

QQ有安全保护,你确定能像普通程序窗口一样获取?

另外这个是用的系统标准控件吗?

不是DirectDraw出来的,WPF之类弄出来的?

要不就是FindWindowEx, GetWindow GetNextWindow

自己先测试普通程序窗口按钮

用Microsoft Spy++看看窗口类及各种OOXX

GetWindowRect获取的是整个窗口的值,GetClientRect获取的是窗口客户区(记事本里空白的地方就是客户区了,供用户编辑用的地方)估计你是用前面的函数获取窗口的大小,然后用它来设置客户区的大小,窗口当然会变大了。

给所有需要写配置项的组件添加标记。

比如有5个按钮,5个编辑框。5个按钮标记为1~5,5个编辑框标记为6~10。

通过取标记组件循环获取组件写配置项。

GetDlgItem(IDD_DIALOG1)->GetWindowText(strText2);

这样肯定是不行的。

你可以试试:

dlgGetWindowText(strText2);

这个语法逻辑正确,不过我估计在DoModal返回之后,这个可能有问题。这样你就需要在对话框的OnOK函数中GetWindowText放在一个对话框自定义成员变量中,然后在DoModal返回之后:

strText2 = dlgm_Title;

这样做是肯定OK的。

以上就是关于c++怎么设置控制台窗口的起始大小全部的内容,包括:c++怎么设置控制台窗口的起始大小、如何使用MFC编程实现找到一个窗口以及获取窗口上的按钮、c中api怎么获取当前整个窗口大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9526346.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存