gpt4 book ai didi

c++ - 使用 SetConsoleWindowInfo 时句柄无效

转载 作者:太空宇宙 更新时间:2023-11-04 12:33:16 25 4
gpt4 key购买 nike

我是 C++ 的新手,决定用一个小型主机游戏来挑战自己。避免典型的闪烁。从我从 MSDN 文档中得到的信息来看,我应该使用控制台缓冲区,但我很轻松地从简单的事情开始,比如更改窗口标题和调整它的大小。我编写的小程序就是为了做到这一点,但由于某种原因,当我执行 SetConsoleWindowInfo 时,我得到错误代码 6(应该是“无效句柄”)。

谁能用这个给我指明正确的方向?提前谢谢你

#include <windows.h>
#include <stdio.h>
#include <iostream>

HANDLE wHandle, bHandle;

SMALL_RECT wSize = { 0,0,100,100 };

int main() {
wHandle = GetConsoleWindow();
if (wHandle == NULL) {
printf("Handle is Null");
}
SetConsoleTitle(L"NewTitle");
if (!SetConsoleWindowInfo(wHandle, TRUE, &wSize)) {
printf("SetConsoleWindowInfo (%d)\n", GetLastError());

}

getchar();
return 0;
}

最佳答案

也许这会有所帮助:

#include <windows.h>
#include <stdio.h>
#include <iostream>

HANDLE wHandle, bHandle;

//SMALL_RECT wSize = { 0,0,100,100 }; // If SetConsoleWindow fails with code 87, then this is too big!
SMALL_RECT wSize = { 0,0,60,20 }; // Works on my screen!

int main() {
// wHandle = GetConsoleWindow();
wHandle = GetStdHandle(STD_OUTPUT_HANDLE); // See comment by RbMm
if (wHandle == NULL) {
printf("Handle is Null");
}
// SetConsoleTitle(L"NewTitle"); // Don't use a wide character string!
SetConsoleTitle("NewTitle");
if (!SetConsoleWindowInfo(wHandle, TRUE, &wSize)) {
printf("SetConsoleWindowInfo (%d)\n", GetLastError());
}
getchar();
return 0;
}

如果您不明白我所做的任何更改(或者我为什么更改它),请随时提问,但评论解决了一些问题。

关于c++ - 使用 SetConsoleWindowInfo 时句柄无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57753333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com