cbSize - 该结构体的长度,16字节 dwInitLen – 指出lpBuffer中已有字符的数目,这样ReadConsole在等待用户输入时,也会把lpBuffer中已有的内容算进去。 dwWakeMask – 指出ReadConsole在接收到哪些Ctrl序列后返回,其中bit0对应^@, bit1对应^A, bit2对应^B,bit3对应^C,以此类推。当用户输入时,输入了dwWakeMask中指定的任何一个Ctrl按键,ReadConsole将返回。 dwUnknown具体什么意义暂不清楚,最初设为0即可 了解了ReadConsoleW的这个新功能后(其实该功能早就有了,只不过很多人不知道),那么就可以很容易地实现自动补齐了。 以下是我给的一个简单例子: #include #include #include #include #include #define Ctrl(x) ((x) & 0x37) struct read_console_param { DWORD nLength; DWORD dwInitLen; DWORD dwWakeMask; DWORD dwUnknown; }; int main (void) { HANDLE hInput, hOutput; WCHAR buf [0x100]; read_console_param param; setlocale (LC_ALL, ".ACP"); memset (¶m, 0, sizeof (param)); param.nLength = sizeof (param); hInput = GetStdHandle (STD_INPUT_HANDLE); |
鏀惰棌鎴愬姛鏌ョ湅鏀惰棌>>
正在阅读:让你的控制台程序也支持自动补齐让你的控制台程序也支持自动补齐
2004-03-29 10:06
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键