C++控制台IO..doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C控制台IO.

七、滚动和移动   ScrollConsoleScreenBuffer是实现文本区滚动和移动的API函数。它可以将指定的一块文本区域移动到另一个区域,被移空的那块区域由指定字符填充。函数的原型如下: BOOL ScrollConsoleScreenBuffer(   HANDLE hConsoleOutput, // 句柄   CONST SMALL_RECT* lpScrollRectangle, // 要滚动或移动的区域   CONST SMALL_RECT* lpClipRectangle, // 裁剪区域   COORD dwDestinationOrigin, // 新的位置   CONST CHAR_INFO* lpFill // 填充字符 );   利用这个API函数还可以实现删除指定行的操作。下面来举一个例子,程序如下: #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(hOut, rc, NULL, crDest, chFill); } void Clea

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档