level 1
看不懂,不过还是谢谢了
昨天找了很久才找到一个可以理解的方法
void gotoxy(int x, int y)
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(hOut, pos); /* 设置光标位置 */
}
这个在codeblocks里包含了windows.h头文件就能用了
不过还要找一个能获取光标当前位置的方法。。。。。
知道的帮帮忙,谢谢
2011年12月25日 04点12分
3
level 11
你贴出来的,在msdn上都有
要获取cursor坐标,用下面的API函数
BOOL WINAPI GetConsoleScreenBufferInfo(
__in HANDLE hConsoleOutput,
__out PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
);
关于console的所有API函数msdn上都有参考,以及详细的例子
对于初学者,因为都是英文,可能阅读起来有点困难,尝试学会使用msdn,应该会获益很多!
比如利用上面的api,可以获取当前console窗口的光标信息,还有其他的讯息以后也许用到
CONSOLE_SCREEN_BUFFER_INFO csbiInfo; //定义一个console 窗口缓冲信息数据结构
HANDLE hStdout= GetStdHandle(STD_OUTPUT_HANDLE); //和你贴出来的代码中做法一样
GetConsoleScreenBufferInfo(hStdout, &csbiInfo)) ;
CONSOLE_SCREEN_BUFFER_INFO结构中的成员dwCursorPosition包含光标坐标,我把该结构定义摘录如下:
typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
COORD dwSize;
COORD dwCursorPosition;
WORD wAttributes;
SMALL_RECT srWindow;
COORD dwMaximumWindowSize;
} CONSOLE_SCREEN_BUFFER_INFO;
2011年12月25日 08点12分
4