PDA

View Full Version : سوال: کد تغییر رنگ در Console



Emehrdad
پنج شنبه 07 دی 1391, 22:58 عصر
سلام کد تغییر رنگ (forground) در console با " توضیح دستوراتش" رو می خوام ... ممنون

lexical_error
جمعه 08 دی 1391, 00:50 صبح
سلام
کدها به این صورت هست

0 = Black 8 = Gray
1 = Blue 9 = Light Blue
2 = Green A = Light Green
3 = Aqua B = Light Aqua
4 = Red C = Light Red
5 = Purple D = Light Purple
6 = Yellow E = Light Yellow
7 = White F = Bright White

برای استفاده باید دستور color سپس یکی از مقادیر بالا رو انتخاب کنید،یا میتونید دوتا کنار هم استفاده کنید که foreground , background با هم عوض بشن !!

Emehrdad
جمعه 08 دی 1391, 13:26 عصر
برای تغییر رنگ از این کد ها باید استفاده کرد : یک تابع برای تغییر رنگ است. برای تغییر رنگ به جای BLUE میتوانیید GREEN یا RED قرار دهید و برای رنگ های دیگر می توانید ایت سه رنگ را ترکیب کنید (برای ترکیب رنگ های با علامت | رنگ ها را از هم جدا کنید )

void SetBlue() // blue color function
{
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hOut,FOREGROUND_BLUE|FOREG ROUND_INTENSITY);
}

فقط کسی می دونه این دستورات چه عملی رو انجام می دن ؟؟؟ مثلآ دستور HANDLE یا STD_OUTPUT_HANDLE چی کار می کنه ؟؟؟؟ !!!!!!!!

H_G_G_I
جمعه 08 دی 1391, 15:59 عصر
اتفاقا اینا رو یکی چند وقت پیش پرسید !
لطفا یکم در انجمن جستجو کنید !:متفکر:

Arashdn
شنبه 09 دی 1391, 06:52 صبح
اتفاقا اینا رو یکی چند وقت پیش پرسید !
لطفا یکم در انجمن جستجو کنید !:متفکر:
من پرسیده بودم
که به جواب خیلی دقیقی هم نرسید ......

در مورد handle
یه رابط هست بین برنامه شما و خروجی استاندارد کنسول (اگه اشتباه کردم لطفا دوستان تصحیح کنن)
دستور
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE
یه هندل از نوع STD_OUTPUT_HANDLE که خروجی استاندارد کنسول هست ایجاد میکنه ....

Slytherin
شنبه 09 دی 1391, 23:12 عصر
یک روش خیلی خیلی ساده هم برای برنامه هایی که در سیستم عامل "ویندوز" استفاده می شوند وجود داره.
ابتدا هدر windows.h رو به برنامتون اضافه کنید.
بعد با دستور
system("")
می تونید کد هایی که در Command Prompt ویندوز اجرا میشن رو توسط سی++ اجرا کنید.
حالا خیلی ساده با دستور color می تونید رنگ متن و بک گراند رو تغییر بدید.
مثلا:
system("color 12")
عدد یک معادل بک گراند و عدد دو معادل فور گراند هست.
کد های رنگ ها رو هم دوستمون در بالا گذاشته بودند...

Behnam.B
دوشنبه 11 دی 1391, 11:14 صبح
سلام.
این تابع جمع و جور میتونه شکل کاملتر تابعی که نوشتی باشه، دو عدد از 0 تا 15 میگیره(دومی اختیاری) و رنگ متن و پس زمینه رو تنظیم میکنه:

void setTextColor(int textColor, int backColor=0){
HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
int colorAttribute = backColor << 4 | textColor;
SetConsoleTextAttribute(consoleHandle, colorAttribute);
}

اما توضیحش رو... شرمنده :لبخندساده: