控制台窗口界面的编程控制(四).docVIP

  • 3
  • 0
  • 约2.55千字
  • 约 3页
  • 2018-03-09 发布于河南
  • 举报
控制台窗口界面的编程控制(四)

控制台窗口界面的编程控制(四)   七、滚动和移动   ScrollConsoleScreenBuffer是实现文本区滚动和移动的API函数。它可以将指定的一块文本区域移动到另一个区域,被移空的那块区域由指定字符填充。函数的原型如下: BOOL ScrollConsoleScreenBuffer(   HANDLE hConsoleOutput, // 句柄   CONST SMALL_RECT* lpScrollRectangle, // 要滚动或移动的区域   CONST SMALL_RECT* lpClipRectangle, // 裁剪区域   COORD dwDestinationOrigin, // 新的位置   CONST CHAR_INFO* lpFill // 填充字符 );   利用这个API函数还可以实现删除指定行的操作。下面来举一个例子, HYPERLINK / \t _blank 程序如下: #include #include #include HANDLE hOut; void DeleteLine(int row); // 删除一行 void MoveText(int x, int y, SMALL_RECT rc); // 移动文本块区域 void ClearScreen(void); // 清屏 void main() {  hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 获取标准输出设备句柄  WORD att = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY |           BACKGROUND_BLUE ;  // 背景是蓝色,文本颜色是黄色  SetConsoleTextAttribute(hOut, att);  ClearScreen();  printf(\n\nThe soul selects her own society,\n);  printf(Then shuts the door;\n);  printf(On her devine majority;\n);  printf(Obtrude no more.\n\n);  CONSOLE_SCREEN_BUFFER_INFO bInfo;  GetConsoleScreenBufferInfo( hOut, bInfo );  COORD endPos = {0, bInfo.dwSize.Y - 1};  SetConsoleCursorPosition(hOut, endPos); // 设置光标位置  SMALL_RECT rc = {0, 2, 40, 5};  _getch();  MoveText(10, 5, rc);  _getch();  DeleteLine(5);  CloseHandle(hOut); // 关闭标准输出设备句柄 } void DeleteLine(int row) {  SMALL_RECT rcScroll, rcClip;  COORD crDest = {0, row - 1};  CHAR_INFO chFill;  CONSOLE_SCREEN_BUFFER_INFO bInfo;  GetConsoleScreenBufferInfo( hOut, bInfo );  rcScroll.Left = 0;  rcScroll.Top = row;  rcScroll.Right = bInfo.dwSize.X - 1;  rcScroll.Bottom = bInfo.dwSize.Y - 1;  rcClip = rcScroll;  chFill.Attributes = bInfo.wAttributes;  chFill.Char.AsciiChar = ;  ScrollConsoleScreenBuffer(hOut, rcScroll, rcClip, crDest, chFill); } void MoveText(int x, int y, SMALL_RECT rc) {  COORD crDest = {x, y};  CHAR_INFO chFill;  CONSOLE_SCREEN_BUFFER_INFO bInfo;  GetConsoleScreenBufferInfo( hOut, bInfo );  chFill.Attributes = bInfo.wAttributes;  chFill.Char.AsciiChar = ;  ScrollConsoleScreenBuffer(

文档评论(0)

1亿VIP精品文档

相关文档