【问题标题】:Windows API doesn't work in GetStdHandle()Windows API 在 GetStdHandle() 中不起作用
【发布时间】:2013-11-17 03:03:02
【问题描述】:

我更新了我的代码,但光标仍然可见。帮帮我,谢谢。 (我是 C 和 WinAPI 的新手)

#define WINVER 0x0500
#include<windows.h>

int main() 
{
 //Get a STD OUTPUT handle
 HWND StdHandle = GetStdHandle(STD_OUTPUT_HANDLE);

 //Set cursor invisible
 CONSOLE_CURSOR_INFO CURSOR;
 CURSOR.bVisible = FALSE;
 SetConsoleCursorInfo(StdHandle, &CURSOR);
 system ("pause>nul");
 return 0;
}

【问题讨论】:

  • 设置所有个成员,添加CURSOR.dwSize = 1;并且 从不 跳过错误检查,SetConsoleCursorInfo() 返回一个 BOOL。至少断言它。

标签: c winapi


【解决方案1】:

你需要初始化CONSOLE_CURSOR_INFOdwSize成员:

CONSOLE_CURSOR_INFO CURSOR;
CURSOR.dwSize = 1;
CURSOR.bVisible = FALSE;

来自SetConsoleCursorInfo 的文档:

CONSOLE_CURSOR_INFO 结构的 dwSize 成员指定 由光标填充的字符单元格的百分比。如果这 member 小于 1 或大于 100,SetConsoleCursorInfo 失败。

注意也来自同一页面

返回值

如果函数成功,则返回值非零。
如果 函数失败,返回值为零。获得扩展错误 信息,调用GetLastError。

检查返回值可以帮助您找出问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多