WriteConsoleOutputAttribute 会改变字符???

unhappyless 2009-02-19 04:02:12

#include <windows.h>
#include <stdio.h>
#include <iostream>

#include <conio.h>
using namespace std;
void main()
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD home = {0,0};
DWORD temp;
//cout<<"dfsfff"<<endl;
printf("dfsfff");
//FillConsoleOutputAttribute(hOut,FOREGROUND_RED | FOREGROUND_INTENSITY,5,home,&temp);
WORD a = FOREGROUND_RED | FOREGROUND_INTENSITY;
WriteConsoleOutputAttribute(hOut,&a,5,home,&temp);
_getch();
CloseHandle(hOut); // 关闭标准输出设备句柄
}


WriteConsoleOutputAttribute

If the number of attributes to be written to extends beyond the end of the specified row in the console screen buffer, attributes are written to the next row. If the number of attributes to be written to extends beyond the end of the console screen buffer, the attributes are written up to the end of the console screen buffer.

The character values at the positions written to are not changed.

为什么我设置完属性后,字符被改变了?
还有 to be written to extends beyond the end of the specified row 怎么理解?
...全文
212 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
unhappyless 2009-02-24
  • 打赏
  • 举报
回复
这论坛有bug,变无满意结贴了
unhappyless 2009-02-24
  • 打赏
  • 举报
回复
这问题我已经搞懂,谢谢你回复,就你一人,分全给你
unhappyless 2009-02-20
  • 打赏
  • 举报
回复
没有超过也改变了
UndefinedCoder 2009-02-19
  • 打赏
  • 举报
回复
如果超过字符数超过了home指定行,下一行的属性也会被改写。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧