2011-12-20 17 views
6

Onları nasıl ayarlayacağımı biliyorum (SetConsoleTextAttribute) ancak bu bilgileri almak için GetConsoleTextAttribute yok. Etkilenmeyen bir konsolda, int 7 olmalıdır.Geçerli konsol arka planı ve metin renkleri nasıl edinilir?

Sorun şu ki, metin rengini ayarlayan bir programdan çıkarken verilen pencere çalışması için aynı kalıyor ve kullanıcının ayarlamamış olduğunu varsayamam. Onun özel beğenisine renk.

cevap

4

wincon.h hızlı bir grep CONSOLE_SCREEN_BUFFER_INFO ReadFile ve ReadConsole fonksiyonları ile ekran tampon için WriteFile ve WriteConsole fonksiyonları ile ekran tampon yazılı veya yankılandı karakterlerin documented as "nitelikleri olan bir wAttributes üyesi var olduğunu göstermektedir. " Bu, the description of SetConsoleTextAttribute ile eşleşir: "Konsol ekran arabelleğine yazılmış karakterlerin özniteliklerini WriteFile veya WriteConsole işleviyle ayarlar veya ReadFile veya ReadConsole işleviyle yankılanır." Yapı, GetConsoleScreenBufferInfo tarafından iade edilir.

2

İşte kod parçacığı. Bu yardımcı olduğunu umuyorum. rengin çıkış sayısı (arka plan * 16 + ana renk) için değişken -

GetColor(CurrentColor); 

currentcolor: kullanmaktan

#include <Windows.h>  
bool GetColor(short &ret){ 
     CONSOLE_SCREEN_BUFFER_INFO info; 
     if (!GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info)) 
      return false; 
     ret = info.wAttributes; 
     return true; 
} 

: Talent25 için

6

sayesinde ben bu fonksiyonu yaptı. İade edilen değer, işlemin başarılı olup olmadığını bildirir.

İlgili konular