EDN首页   博客首页

日志档案

发表于 2007-11-26 15:03:36

1

标签: 无标签

Visual C++中使用gotoxy() / clrscr()等函数

#include < windows.h >

void clrscr(void);
void clreol(void);
void clreoscr(void);
void gotoxy(int ,int );

// --- Funktionsimplementierung

/*********************************************************************************/

void clrscr(void)  //clearscreen: gesamten Bildschirm leeren
{
    CONSOLE_SCREEN_BUFFER_INFO    csbiInfo;                            //variablendklaration
    HANDLE    hConsoleOut;
    COORD    Home = {0,0};
    DWORD    dummy;

    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

    FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);    //bis cursorposition leerzeichen ausgeben
    csbiInfo.dwCursorPosition.X = 0;                                    //cursorposition X koordinate festlegen
    csbiInfo.dwCursorPosition.Y = 0;                                    //cursorposition Y koordinate festlegen
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);    //den cursor an die festgelegte koordinate setzen
}

/*********************************************************************************/

void clreol(void)  //clear end of line: den rest der Zeile nach dem cursor l鰏chen
{
    CONSOLE_SCREEN_BUFFER_INFO        csbiInfo;                            //variablendklaration
    HANDLE    hConsoleOut;
    COORD    Home,pos;
    DWORD    dummy;

    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

    Home = csbiInfo.dwCursorPosition;
    pos.X = 80 - csbiInfo.dwCursorPosition.X;

    FillConsoleOutputCharacter(hConsoleOut,' ',pos.X,Home,&dummy);
}

/*********************************************************************************/

void clreoscr(void)  //clear end of screen: alles nach dem cursor l鰏chen
{
    CONSOLE_SCREEN_BUFFER_INFO        csbiInfo;                            //variablendklaration
    HANDLE    hConsoleOut;
    COORD    Home;
    DWORD    dummy;

    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

    Home=csbiInfo.dwCursorPosition;
    FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);
}

/*********************************************************************************/

void gotoxy(int x,int y)  //cursor an gewuenschte position auf dem bildschirm setzen
{
    CONSOLE_SCREEN_BUFFER_INFO        csbiInfo;                            //variablendklaration
    HANDLE    hConsoleOut;

    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

    csbiInfo.dwCursorPosition.X = x;                                    //cursorposition X koordinate festlegen
    csbiInfo.dwCursorPosition.Y = y;                                    //cursorposition Y koordinate festlegen
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);    //den cursor an die festgelegte koordinate setzen
}


系统分类: 软件开发   |   用户分类: C/C++   |   来源: 无分类   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1130)    回复(1)  

投一票您将和博主都有获奖机会!

最新评论

  • 呵呵

    2008-3-26 18:50:36

    好,好,支持