السلام عليكم,
لاحضت أن الكثير من الإخوان يبرمجون برامج console وهي نعرف عادة ما تكون شاشة سوداء يكتب عليها بالأبيض.وهنا أريد أن أعطي طريقة لتغيير هدا والكتابة بمختلف الألوان ربما هدا يخرجنا عن هده الروتينية ويمكن مثلا إدا كانت هناك كتابة مهمة في البرنامج نكتبها بلون ما حتى تثير انتباه المستعمل.
ويمكن إما أن نغير لون الكتابة على الشاشة كلها أو تغيير اللون حسب السطر الدي نريد.
فالأولى سهلة إدا كنا سنغير كتابة الشلشة كلها ونقوم بما يلي :
HANDLE hand=GetStdHandle(STD_OUTPUT_HANDLE); سنقوم بأخد هاندل للشاشة التي سنكتب فيها وبعد
SetConsoleTextAttribute(hand,FOREGROUND_RED); الكتابة هنا ستكون حمراء مثلا.
هناك FOREGROUND_GREEN FOREGROUND_BLUE FOREGROUND_RED هده تعطي الألوان الثلاثة المبدئية ويمكن خلطها لتعطي لونا آخر .فإدا أردنا الأصفر مثلا يمكن أن نستعمل :
FOREGROUND_GREEN |FOREGROUND_RED ويمكن المزج بين هده الألوان.وكما أن هناك FOREGROUND_INTENSITY وهدا يعطي intensity إدا زدناه ستكون الكتابة مضيئة أكثر.
وهناك أيضا اللون الدي ستكتب عليه الكتابة وهما أيضا 3 ألوان زائد intensity وهي كالتالي BACKGROUND_GREEN .مثل السابق فقط نستبدل كلمة FOREGROUND ب BACKGROUND .فإدا أردنا أن نكتب بلون أحمر فوق لون أخضر :
FOREGROUND_RED|BACKGROUND_GREEN
ويمكنكم تغيير هده المعطيات وتجربوها حتى تختاروا الألوان الدي تريدون.
وإدا أردتم أن تختاروا اللون حسب السطر فنستعمل :
FillConsoleOutputAttribute وهده تطلب 5 arguments
1 الهاندل للكونسول كما في الأول
2 اللون ويمكن أن نستعمل الخليط كما سبق
3 عدد الأحرف التي نريد كتابتها وهنا يمكن أن نعطي رقما كبيرا حتى نتأكد أن الكل سيكتب باللون الدي نريده.
4 قيمة من نوع COORD وهي تعطي الأفصول والأرتوب للسطر الدي نريده
5 مؤشر على DWORD وهدا سيرجع فيه عدد الحروف التي تمت كتابتها فعليا.
وفي الملف المرفق ستجدون ملف من نوع CPP . فيه مثال عن هدا.
هده من بين الطرق التي تمكننا من كتابة الألوان.
أتمنى لكم حياة مليئة بالألوان وإلى اللقاء