2012-06-07 59 views
0

我想在visual studio 2008編寫的C++程序中使用這個函數。 據我所知Borland用來支持這個函數,但它不是一個標準的C++函數,VS 2008沒有識別這個代碼:是否可以在VS 2008中使用textbackground()函數?

textbackground(1); 

我想知道是否有任何解決方案在VS 2008中使用此功能?

您可以閱讀更多關於此功能的信息here

P.S.包括conio.h不起作用

+0

你想要一個可以改變文本背景色的函數嗎?什麼背景?一個GUI?終端的?你有嘗試過什麼嗎? – chembrad

+0

該功能的文檔在哪裏?這可能會告訴您需要包含哪些標題以及需要鏈接哪些庫。 – 2012-06-07 15:46:43

+0

@infact,它似乎是某些平臺上的conio.h的一部分:http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devwin32/coniohpart_xml.html –

回答

3

您需要做的是使用Windows NT的控制檯IO功能。

E.g. SetConsoleTextAttribute在控制檯上設置文本的屬性(前景色,背景色)。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms686047(v=vs.85).aspx描述了這個功能。在http://msdn.microsoft.com/en-us/library/windows/desktop/ms686974(v=vs.85).aspx上,您可以找到使用此控制檯功能(和其他控制檯功能)的示例代碼。

+0

謝謝。它工作正常:)只是另一個問題,所以你的意思是沒有辦法使用確切的textbackground()函數? –

+0

可能不是。我認爲textbackground是一個由Borland編譯器的運行時庫定義的函數。如果切換編譯器,則會得到其他運行時和庫(儘管標準C庫保持不變,但該函數不在標準C庫中)。通過使用這些Windows函數,您現在可以切換到Windows上運行的任何C編譯器,因此此函數不受特定編譯器的運行時限限制。 – Patrick

+0

感謝您的解釋 –

1

只是爲了幫助別人多一點:

相反的:

textbackground(1); 

我用SetConsoleTextAttribute()函數以這種方式:

# include <windows.h> 

HANDLE screen; 

int main() 
    { 
     screen = GetStdHandle(STD_OUTPUT_HANDLE); 
     SetConsoleTextAttribute(screen,1); 

     // your own code 

     return 0; 
    } 

數指到顏色藍色

相關問題