簡體   English   中英

如何使用 C 通過坐標等改變控制台在特定點的背景顏色?

[英]How to change the background color of the console at a specific point by coordinates or so using C?

我需要更改控制台中某個單元格的顏色,而不使用SetConsoleTextAttribute function 或類似方法在控制台中打印任何具有給定顏色的字符。

FillConsoleOutputAttribute function 為指定數量的字符單元設置字符屬性,從屏幕緩沖區中的指定坐標開始。

BOOL WINAPI FillConsoleOutputAttribute(
  _In_  HANDLE  hConsoleOutput,
  _In_  WORD    wAttribute,
  _In_  DWORD   nLength,
  _In_  COORD   dwWriteCoord,
  _Out_ LPDWORD lpNumberOfAttrsWritten
);

如果要設置屬性的字符單元的數量超出控制台屏幕緩沖區中指定行的末尾,則設置下一行的單元。 如果要寫入的單元格數量超出控制台屏幕緩沖區的末尾,則單元格將被寫入控制台屏幕緩沖區的末尾。

寫入位置的字符值不變。

不推薦使用此 API,並且沒有特定的虛擬終端等效項。 不支持填充可視 window 之外的區域,為終端的歷史空間保留。 使用新文本或顏色填充可見區域是通過移動 cursor、設置新屬性、然后為該區域寫入所需文本、如果需要重復填充運行長度的字符來執行的。 可能需要額外的 cursor 移動,然后寫入所需的文本以填充矩形區域。 客戶端應用程序應保留其自己的 memory 屏幕上的內容,並且無法查詢遠程 state。 更多信息可以在經典控制台與虛擬終端文檔中找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM