www.pudn.com > WordParser.rar > my_conio.h
#ifndef _MY_CONIO_H_FILE_INCLUDED #define _MY_CONIO_H_FILE_INCLUDED #include#include #include #define PERR(bSuccess,api) {if(!(bSuccess)) printf("%s:Error %d from %s on line %d\n",__FILE__,GetLastError(),api,__LINE__);} void MyCls(HANDLE); void GotoConsoleXY(HANDLE,int,int); void clrscr() { HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE); MyCls(hStdOut); return; } void gotoxy(int x,int y) { HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE); GotoConsoleXY(hStdOut,x,y); return; } void MyCls(HANDLE hConsole) { COORD coordScreen={0,0};//设置清屏后光标返回的屏幕左上角坐标 BOOL bSuccess; DWORD cCharsWritten; CONSOLE_SCREEN_BUFFER_INFO csbi;//保存缓冲区信息 DWORD dwConSize;//当前缓冲区可容纳的字符数 bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//获得缓冲区信息 PERR(bSuccess,"GetConsoleScreenBufferInfo"); dwConSize=csbi.dwSize.X * csbi.dwSize.Y;//缓冲区容纳字符数目 //用空格填充缓冲区 bSuccess=FillConsoleOutputCharacter(hConsole,(TCHAR)' ',dwConSize,coordScreen,&cCharsWritten); PERR(bSuccess,"FillConsoleOutputCharacter"); bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//获得缓冲区信息 PERR(bSuccess,"ConsoleScreenBufferInfo"); //填充缓冲区属性 bSuccess=FillConsoleOutputAttribute(hConsole,csbi.wAttributes,dwConSize,coordScreen,&cCharsWritten); PERR(bSuccess,"FillConsoleOutputAttribute"); //光标返回屏幕左上角坐标 bSuccess=SetConsoleCursorPosition(hConsole,coordScreen); PERR(bSuccess,"SetConsoleCursorPosition"); return; } void GotoConsoleXY(HANDLE hConsole,int x,int y) { COORD coordScreen={x,y}; SetConsoleCursorPosition(hConsole,coordScreen); return; } #endif //_MY_CONIO_H_FILE_INCLUDED