zoukankan
html css js c++ java
VC++中控制控件台字体颜色(转)
#include
"
windows.h
"
#include
<
iostream
>
#include
<
string
>
#include
"
head.h
"
using
namespace
std;
enum
clr
{ FB
=
FOREGROUND_BLUE,
FG
=
FOREGROUND_GREEN,
FR
=
FOREGROUND_RED,
FI
=
FOREGROUND_INTENSITY,
BB
=
BACKGROUND_BLUE,
BG
=
BACKGROUND_GREEN,
BR
=
BACKGROUND_RED,
BI
=
BACKGROUND_INTENSITY }
;
class
color
{
public
:
explicit
color( WORD wAttributes
=
getcurrentvalue_() ) : wAttributes_(wAttributes)
{
}
WORD getvalue(
void
)
const
{
return
wAttributes_;
}
private
:
static
WORD getcurrentvalue_(
void
)
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
::GetConsoleScreenBufferInfo( ::GetStdHandle(STD_OUTPUT_HANDLE),
&
csbi );
return
csbi.wAttributes;
}
WORD wAttributes_;
}
;
const
color setcolor( WORD wAttributes )
{
::SetConsoleTextAttribute( ::GetStdHandle(STD_OUTPUT_HANDLE), wAttributes );
return
color(wAttributes);
}
const
color setcolor( color clrAttributes )
{
return
setcolor( clrAttributes.getvalue() );
}
ostream
&
operator
<<
( ostream
&
os,
const
color
&
wc )
{
return
os;
}
;
istream
&
operator
>>
( istream
&
os,
const
color
&
wc )
{
return
os;
}
;
class
position
{
public
:
position( SHORT row, SHORT col ) : row_(row), col_(col)
{
}
position(
const
position
&
pos
=
getcurrentvalue_() ) : row_(pos.row_), col_(pos.col_)
{
}
SHORT getrow(
void
)
const
{
return
row_;
}
SHORT getcol(
void
)
const
{
return
col_;
}
private
:
static
const
position getcurrentvalue_(
void
)
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
::GetConsoleScreenBufferInfo( ::GetStdHandle(STD_OUTPUT_HANDLE),
&
csbi );
return
position( csbi.dwCursorPosition.X, csbi.dwCursorPosition.Y );
}
SHORT row_, col_;
}
;
const
position setpos( SHORT row, SHORT col )
{
COORD coord
=
{ col, row }
;
::SetConsoleCursorPosition( ::GetStdHandle(STD_OUTPUT_HANDLE), coord );
return
position( row, col );
}
const
position setpos( position pos )
{
return
setpos( pos.getrow(), pos.getcol() );
}
ostream
&
operator
<<
( ostream
&
os,
const
position
&
wc )
{
return
os;
}
;
istream
&
operator
>>
( istream
&
os,
const
position
&
wc )
{
return
os;
}
;
int
_tmain(
int
argc, _TCHAR
*
argv[])
{
using
namespace
std;
color oldcolor;
cout
<<
setcolor(FG)
<<
"
输入一段文字吧
"
<<
endl;
//
cout << setpos(1,15) << setcolor(FB) << "输入一段文字吧" << endl;
string
s;
cin
>>
setpos(
5
,
10
)
>>
setcolor(FI)
>>
s;
position curpos;
cout
<<
setcolor(oldcolor)
<<
"
*这里是
"
<<
curpos.getrow()
<<
"
行
"
<<
curpos.getcol()
<<
"
列
"
<<
endl;
setcolor( oldcolor );
static
int
a;
cout
<<
a
<<
endl;
getchar();
return
0
;
}
查看全文
相关阅读:
eWebEditor漏洞
远程连接SQL Server
eWebEditor漏洞
【Demo 0009】绘图对象调色板
【Demo 0001】 获取命令行参数
【Demo 0007】绘图对象 画笔
【Demo 0005】Win32 程序结构封装
【Demo 0006】图形绘制基础
【Demo 0008】绘图对象–画刷
【Demo 0004】Windows 消息机制(2)
原文地址:https://www.cnblogs.com/myopq/p/581548.html
最新文章
File Reader sample
operate XML file(update,delete)
IO>File and Directory class
Edit(Update,Cancel) ,Delete in DataList webcontrol
Use SqlDataAdapter to update database, but SqlCommandBuilder required
create procedure grammar
get all table's information concerned
(HDOJ 1022)Train Problem I
(HDOJ 1076)An Easy Task
(HDOJ 1008)Elevator
热门文章
(HDOJ 1040)As Easy As A+B
(HDOJ 1021)Fibonacci Again
(HDOJ 1097)A hard puzzle
(HDOJ 1012)u Calculate e
(HDOJ 1042)N!
(HDOJ 1108)最小公倍数
(HDOJ 1019)Least Common Multiple
服务器端Sql Server 2000里怎样实现客户机远程登陆
远程连接SQL Server
服务器端Sql Server 2000里怎样实现客户机远程登陆
Copyright © 2011-2022 走看看