SetConsoleMode

【勇芳软件工作室】汉化HomePreviousNext

SetConsoleMode功能设置控制台输入缓冲区的输入模式或控制台屏幕缓冲区的输出模式。

BOOL SetConsoleMode(

HANDLE 【hConsoleHandle】,//控制台输入或屏幕缓冲区的句柄
DWORD 【dwMode】//输入或输出模式进行设置
); 

参数

【hConsoleHandle】

标识控制台输入缓冲区或屏幕缓冲区。句柄必须具有GENERIC_WRITE权限。

【dwMode】

指定要设置的输入或输出模式。如果【hConsoleHandle】参数是输入句柄,则该模式可以是以下值的组合。创建控制台时,除了ENABLE_WINDOW_INPUT之外的所有输入模式都默认启用。

含义
ENABLE_LINE_INPUTReadFileReadConsole函数仅在读取回车字符时返回。如果禁用此模式,则当一个或多个字符可用时,该函数将返回。
ENABLE_ECHO_INPUTReadFileReadConsole功能读取的字符在读取时将写入活动屏幕缓冲区。只有启用ENABLE_LINE_INPUT模式时,才能使用此模式。
ENABLE_PROCESSED_INPUTCTRL + C由系统处理,不会放在输入缓冲区中。如果输入缓冲区正在被ReadFileReadConsole读取,则其他控制键由系统处理,不会在ReadFileReadConsole缓冲区中返回。如果还启用了ENABLE_LINE_INPUT模式,系统将处理退格,回车和换行符。
ENABLE_WINDOW_INPUT更改控制台屏幕缓冲区大小的用户交互在控制台的输入缓冲区中报告。关于这些事件的信息可以使用ReadConsoleInput函数的应用程序从输入缓冲区读取,但不能使用ReadFileReadConsole的信息。
ENABLE_MOUSE_INPUT如果鼠标指针位于控制台窗口的边框内,并且窗口具有键盘焦点,则鼠标移动和按钮按下的鼠标事件将放置在输入缓冲区中。即使启用了此模式,这些事件将被ReadFileReadConsole丢弃。

如果【hConsoleHandle】参数是屏幕缓冲区句柄,则该模式可以是以下值的组合。创建屏幕缓冲区时,默认情况下都会启用两种输出模式。

含义
ENABLE_PROCESSED_OUTPUTWriteFileWriteConsole函数编写的字符或由ReadFileReadConsole函数回显的字符将检查ASCII控制序列,并执行正确的操作。处理退格键,制表符,铃,回车符和换行符。
ENABLE_WRAP_AT_EOL_OUTPUT当使用WriteFileWriteConsole或回显ReadFileReadConsole进行写入时,当光标到达当前行的末尾时,光标移动到下一行的开头。这会导致当光标超出窗口最后一行时,控制台窗口中显示的行会自动向上滚动。当光标超出屏幕缓冲区的最后一行时,它也会使屏幕缓冲区的内容向上滚动(丢弃屏幕缓冲区的顶行)。如果禁用此模式,则该行中的最后一个字符将覆盖任何后续字符。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

控制台由输入缓冲区和一个或多个屏幕缓冲区组成。控制台缓冲区的模式确定控制台在输入和输出(I / O)操作期间的行为。一组标志常量与输入句柄一起使用,另一组与屏幕缓冲(输出)句柄一起使用。设置一个屏幕缓冲区的输出模式不影响其他屏幕缓冲区的输出模式。

ENABLE_LINE_INPUT和ENABLE_ECHO_INPUT模式仅影响使用ReadFileReadConsole从控制台的输入缓冲区读取的进程。类似地,ENABLE_PROCESSED_INPUT模式主要影响ReadFileReadConsole用户,除了它还确定是否在输入缓冲区中报告CTRL + C输入(由ReadConsoleInput函数读取)或传递给{989796123 }函数由应用程序定义。

ENABLE_WINDOW_INPUT和ENABLE_MOUSE_INPUT模式确定涉及窗口大小调整和鼠标操作的用户交互是否在输入缓冲区中报告或丢弃。这些事件可以通过ReadConsoleInput读取,但总是通过ReadFileReadConsole进行过滤。

ENABLE_PROCESSED_OUTPUT和ENABLE_WRAP_AT_EOL_OUTPUT模式仅影响使用ReadFileReadConsoleWriteFileWriteConsole的进程。

要确定控制台输入缓冲区或屏幕缓冲区的当前模式,请使用GetConsoleMode功能。

也可以看看

GetConsoleMode, HandlerRoutine, ReadConsole, ReadConsoleInput, ReadFile, WriteConsole, WriteFile