本帖最后由 人造人 于 2018-7-19 14:05 编辑
恐怕没有你想要的那样的答案
编程的确是可以上网找代码,不过可能稍微不太一样
举个例子
我现在需要实现一个功能:我要在cmd窗口画图,但是cmd窗口的那个一闪一闪的光标很讨厌,我需要隐藏了cmd窗口的光标
我百度 “cmd隐藏光标”
我稍微修改一下,就加入到了我的代码中static void HideCursor()
{
CONSOLE_CURSOR_INFO cci;
cci.bVisible = FALSE;
cci.dwSize = sizeof(cci);
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle, &cci);
}
我需要改变窗口的大小
我百度 “改变cmd窗口大小”
找到了
但是这个不是我想要的,用这个有好多限制
我需要windows的api函数来改变窗口大小
百度 “改变cmd窗口大小 api”
还是没有想要的
百度 “改变窗口大小 api”
没有
百度 “C++ 改变窗口大小 api”
没有
百度 “windows api 改变窗口大小”
然后终于找到了一个貌似还行的
试试
api函数MoveWindow
百度 “MoveWindow”
MoveWindow需要窗口句柄
百度“获取当前窗口句柄”
找到了
GetForegroundWindow
获取当前系统的前台窗口的窗口句柄
获取的是当前系统的前台窗口的窗口句柄
也就是有可能这个函数会获取到其他窗口的句柄,不是当前窗口
不过我试了,在我的代码下没有问题
然后我修改了这个代码
加入我的代码static void SetConsoleWindowSize(int x, int y)
{
DEVMODE DevMode;
EnumDisplaySettings(nullptr, ENUM_CURRENT_SETTINGS, &DevMode); // 获取当前显示器的分辨率
MoveWindow(GetForegroundWindow(), (DevMode.dmPelsWidth - x) / 2, (DevMode.dmPelsHeight - y) / 2, x, y, true);
}
名字是改变(设置)控制台窗口的大小,但是连位置也改变了,取名字真的很头疼,忽略这个细节^_^
就是这样,不断改变关键字,直到找到答案或者放弃寻找答案^_^
获取当前显示器的分辨率的这个函数同样也是通过不断百度,不断改变关键字得来的 |