控制台窗口界面的编程控制(三).docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
控制台窗口界面的编程控制(三)

控制台窗口界面的编程控制(三)   六、文本操作示例  下面看一个示例程序:?????#include windows.h HANDLE hOut;void ShadowWindowLine(char *str); // 在具有阴影效果的窗口中显示一行字符,窗口为居中显示void DrawBox(boolbSingle, SMALL_RECT rc); // 绘制边框void main(){ hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 获取标准输出设备句柄 SetConsoleOutputCP(437); // 设置代码页 ShadowWindowLine(Display a line of words, and center the window with shadow.); CloseHandle(hOut); // 关闭标准输出设备句柄}void ShadowWindowLine(char *str){ CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口缓冲区信息 GetConsoleScreenBufferInfo( hOut, bInfo ); // 获取窗口缓冲区信息 // 计算显示窗口大小和位置 int x1, y1, x2, y2, chNum = strlen(str); x1 = (bInfo.dwSize.X - chNum)/2 - 2; y1 = bInfo.dwSize.Y/2 - 2; x2 = x1 + chNum + 4; y2 = y1 + 5; WORD att1 = BACKGROUND_INTENSITY; // 阴影属性 WORD att0 = FOREGROUND_RED |FOREGROUND_GREEN |FOREGROUND_BLUE |         FOREGROUND_INTENSITY |       BACKGROUND_RED | BACKGROUND_BLUE; // 文本属性 WORD attText = FOREGROUND_RED |FOREGROUND_INTENSITY; // 文本属性 // 设置阴影 COORD posShadow = {x1+1, y1+1}, posText = {x1, y1}; for (int i=0; i5; i++){  FillConsoleOutputAttribute(hOut, att1, chNum + 4, posShadow, NULL);   posShadow.Y++; } // 填充窗口背景 for (i=0; i5; i++){  FillConsoleOutputAttribute(hOut, att0, chNum + 4, posText, NULL);   posText.Y++; } // 写文本和边框 posText.X = x1 + 2; posText.Y = y1 + 2; WriteConsoleOutputCharacter(hOut, str, strlen(str), posText, NULL); SMALL_RECT rc = {x1, y1, x2-1, y2-1}; DrawBox(true, rc); SetConsoleTextAttribute(hOut, bInfo.wAttributes); // 恢复原来的属性}void DrawBox(boolbSingle, SMALL_RECT rc){ char chBox[6]; if (bSingle) {  chBox[0] = (char)0xda; // 左上角点  chBox[1] = (char)0xbf; // 右上角点  chBox[2] = (char)0xc0; // 左下角点  chBox[3] = (char)0xd9; // 右下角点  chBox[4] = (char)0xc4; // 水平  chBox[5] = (char)0xb3; // 坚直 } else {  chBox[0] = (char)0xc9; // 左上角点  chBox[1] = (char)0xbb; // 右上角点  chBox[2] = (char)0xc8; // 左下角点  chBox[3] = (char)0xbc; // 右下角点  chBox[4] = (char)0xcd; // 水平  chBox[5] = (char)0xba; // 坚直 } COORD pos = {rc.Left, rc.Top}; WriteConsoleOutputCharacter(hOut, chBox[0], 1, pos, NUL

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档