كيفية الشاشة مسح المنفذ (CLS) في تطبيق وحدة التحكم


الملخص


توفر بعض الإصدارات غير تابع ل Microsoft من c + + دالة كلرسكر لمسح الشاشة في تطبيق DOS. ومع ذلك، هناك أية دالة وقت التشغيل C أو واجهة برمجة تطبيقات Win32 (API) سيتم الاضطلاع بهذه الوظيفة. للقيام بهذه المهمة لتطبيق وحدة تحكم Win32، استخدم إحدى الطرق التالية:
  • استخدام دالة في نظام.
  • كتابة دالة التي سيتم مسح الشاشة برمجياً.
يتم وصف هذه الأساليب في قسم "مزيد من المعلومات" التالية.

مزيد من المعلومات


استخدام دالة النظام

#include <stdlib.h>void main(){   system("cls");}

كتابة دالة التي سيتم مسح الشاشة برمجياً

الدالة التالية مسح الشاشة:
 /* Standard error macro for reporting API errors */  #define PERR(bSuccess, api){if(!(bSuccess)) printf("%s:Error %d from %s \     on line %d\n", __FILE__, GetLastError(), api, __LINE__);} void cls( HANDLE hConsole ) {    COORD coordScreen = { 0, 0 };    /* here's where we'll home the                                        cursor */     BOOL bSuccess;    DWORD cCharsWritten;    CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */     DWORD dwConSize;                 /* number of character cells in                                        the current buffer */     /* get the number of character cells in the current buffer */     bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );    PERR( bSuccess, "GetConsoleScreenBufferInfo" );    dwConSize = csbi.dwSize.X * csbi.dwSize.Y;    /* fill the entire screen with blanks */     bSuccess = FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',       dwConSize, coordScreen, &cCharsWritten );    PERR( bSuccess, "FillConsoleOutputCharacter" );    /* get the current text attribute */     bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );    PERR( bSuccess, "ConsoleScreenBufferInfo" );    /* now set the buffer's attributes accordingly */     bSuccess = FillConsoleOutputAttribute( hConsole, csbi.wAttributes,       dwConSize, coordScreen, &cCharsWritten );    PERR( bSuccess, "FillConsoleOutputAttribute" );    /* put the cursor at (0, 0) */     bSuccess = SetConsoleCursorPosition( hConsole, coordScreen );    PERR( bSuccess, "SetConsoleCursorPosition" );    return; }