Windows控制台光标控制

控制台的光标具有两个属性:dwSize 高度,bVisible 是否显示。

具体步骤:

1.得标准输出设备句柄GetStdHandle(),因为光标是在标准输出设备上显示

2.获取控制台光标信息GetConsoleCursorInfo(),可以跳过

3.设置控制台光标信息SetConsoleCursorInfo()

4.设置光标位置

 

更多信息大家可以去MSDN上查!

 

获取设备句柄的函数:

HANDLE WINAPI GetStdHandle(
  __in  DWORD nStdHandle
);nStdHandle :

1.     STD_INPUT_HANDLE      标准输入设备,起初,它是控制台输入缓存区,CONIN$

2.     STD_OUTPUT_HANDLE   标准输出设备,起初,它是活动的控制台屏幕缓存区,CONOUT$

3.     STD_ERROR_HANDLE    标准报错设备,起初,它是活动的控制台屏幕缓存区,CONOUT$

 

控制台光标信息结构体:

typedef struct _CONSOLE_CURSOR_INFO {
    DWORD  dwSize;    //光标的高度,控制台一行字符的高度为100,光标的高度为1到100
    BOOL   bVisible;     //是否显示光标,TRUE为显示,FALSE为不显示
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO

 

 获取控制台光标信息:

BOOL WINAPI GetConsoleCursorInfo(
  __in   HANDLE hConsoleOutput,
  __out  PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
);

hConsoleOutput:控制台屏幕缓存区句柄,必须具有GENERIC_READ权限

lpConsoleCursorInfo:一个指向CONSOLE_CURSOR_INFO的指针,用来接收控制台光标信息

 

设置控制台光标信息:

BOOL WINAPI SetConsoleCursorInfo(
  __in  HANDLE hConsoleOutput,
  __in  const CONSOLE_CURSOR_INFO* lpConsoleCursorInfo
);

hConsoleOutput:控制台屏幕缓存区句柄,必须具有GENERIC_READ权限

lpConsoleCursorInfo:一个指向CONSOLE_CURSOR_INFO的指针,用来设置控制台光标信息


设置控制台光标位置:

void gotoxy(int Wide,int High)   //Wide表示列,0为第一列,High表示行,0为第一行
{
 COORD loc;
 loc.X=Wide;
 loc.Y=High;
 SetConsoleCursorPosition(hStdout, loc);
}

posted @ 2010-12-21 15:08  赤勇玄心行天道  阅读(1248)  评论(1编辑  收藏  举报