共用方式為


視窗和螢幕緩衝區大小

螢幕緩衝區的大小會以以字元儲存格為基礎的座標方格來表示。 寬度是每個資料列中的字元儲存格數目,而高度則是列數。 與每個螢幕緩衝區相關聯的視窗,可決定主控台視窗視窗中所顯示主控台畫面緩衝區矩形部分的大小和位置。 螢幕緩衝區的視窗是藉由指定視窗矩形左上角和右下角儲存格的字元儲存格座標來定義。

注意

虛擬終端機序列 世界中,視窗的大小和螢幕緩衝區的大小會固定為相同的值。 終端機會處理與螢幕緩衝區大小大於其視窗大小之主控台相等的任何捲動區域。 該內容屬於終端機,而且通常不再是可定址區域的一部分。 如需詳細資訊,請參閱傳統主控台函式與虛擬終端機序列 的比較

螢幕緩衝區可以是任何大小,只能受限於可用的記憶體。 螢幕緩衝區視窗的維度不能超過主控台螢幕緩衝區的對應維度,或可根據目前字型大小(由使用者獨佔控制)在螢幕上容納的最大視窗。

GetConsoleScreenBufferInfo 函式會傳回螢幕緩衝區及其視窗的下列資訊:

  • 主控台畫面緩衝區的目前大小
  • 視窗的目前位置
  • 指定目前螢幕緩衝區大小、目前字型大小和螢幕大小之視窗的大小上限

GetLargestConsoleWindowSize 函式會根據目前的字型和螢幕大小,傳回主控台視窗的大小上限。 此大小與 GetConsoleScreenBufferInfo 回的視窗大小上限不同,因為主控台畫面緩衝區大小會被忽略。

若要變更螢幕緩衝區的大小,請使用 SetConsoleScreenBufferSize 函式。 如果指定大小的任一維度小於主控台視窗的對應維度,則此函式會失敗。

若要變更螢幕緩衝區視窗的大小或位置,請使用 SetConsoleWindowInfo 函式。 如果指定的視窗角座標超過主控台畫面緩衝區或畫面的限制,則此函式會失敗。 變更使用中畫面緩衝區的視窗大小會變更畫面上顯示的主控台視窗大小。

進程可以變更其主控台的輸入模式,以啟用視窗輸入,如此一來,當使用者變更控制台畫面緩衝區大小時,進程就能夠接收輸入。 如果應用程式啟用視窗輸入,它可以使用 GetConsoleScreenBufferInfo 在啟動時擷取視窗和螢幕緩衝區大小。 接著,這項資訊可用來判斷資料在視窗中顯示的方式。 如果使用者變更控制台畫面緩衝區大小,應用程式可以藉由變更顯示資料的方式來回應。 例如,如果每個資料列的字元數變更,應用程式可以調整文字換行在行尾的方式。 如果應用程式未啟用視窗輸入,則必須使用繼承的視窗和螢幕緩衝區大小,或在啟動期間將它們設定為所需的大小,並在結束時還原繼承的大小。 如需視窗輸入模式的其他資訊,請參閱 低階主控台模式