Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
W tym dokumencie opisano funkcje platformy konsolowej, które nie są już częścią naszego planu działania ekosystemu. Nie zalecamy używania tej zawartości w nowych produktach, ale będziemy nadal obsługiwać istniejące użycie w przyszłości na czas nieokreślony. Nasze preferowane nowoczesne rozwiązanie koncentruje się na sekwencjach terminali wirtualnych w celu zapewnienia maksymalnej zgodności w scenariuszach międzyplatformowych. Więcej informacji na temat tej decyzji projektowej można znaleźć w naszym dokumencie dotyczącym klasycznej konsoli i terminalu wirtualnego .
Funkcje wyjściowe konsoli niskiego poziomu zapewniają bezpośredni dostęp do komórek znaków buforu ekranu. Jeden zestaw funkcji odczytuje lub zapisuje kolejne komórki rozpoczynające się w dowolnej lokalizacji w buforze ekranu konsoli. Inny zestaw funkcji odczytuje lub zapisuje w prostokątnych blokach komórek.
Następujące funkcje odczytują lub zapisują do określonej liczby kolejnych komórek znaków w buforze ekranu, zaczynając od określonej komórki.
| Funkcja | Opis |
|---|---|
| ReadConsoleOutputCharacter | Kopiuje ciąg znaków Unicode lub ANSI z buforu ekranu. |
| WriteConsoleOutputCharacter | Zapisuje ciąg znaków Unicode lub ANSI w buforze ekranu. |
| ReadConsoleOutputAttribute | Kopiuje ciąg atrybutów koloru tekstu i tła z buforu ekranu. |
| WriteConsoleOutputAttribute | Zapisuje ciąg atrybutów koloru tekstu i tła w buforze ekranu. |
| FillConsoleOutputCharacter | Zapisuje pojedynczy znak Unicode lub ANSI do określonej liczby kolejnych komórek w buforze ekranu. |
| FillConsoleOutputAttribute | Zapisuje kombinację atrybutów tekstu i koloru tła do określonej liczby kolejnych komórek w buforze ekranu. |
W przypadku wszystkich tych funkcji, gdy napotkano ostatnią komórkę wiersza, odczyt lub zapis zawija się do pierwszej komórki następnego wiersza. Po napotkaniu końca ostatniego wiersza buforu ekranu konsoli funkcje zapisu odrzucają wszystkie niepisane znaki lub atrybuty, a funkcje odczytu raportują liczbę znaków lub atrybutów faktycznie zapisanych.
Następujące funkcje odczytują lub zapisują prostokątne bloki komórek znaków w określonej lokalizacji w buforze ekranu.
| Funkcja | Opis |
|---|---|
| ReadConsoleOutput | Kopiuje dane znaków i kolorów z określonego bloku komórek buforu ekranu do danego bloku w buforze docelowym. |
| WriteConsoleOutput | Zapisuje dane znaków i kolorów do określonego bloku komórek buforu ekranu z danego bloku w buforze źródłowym. |
Te funkcje traktują ekranu i źródłowe lub docelowe jako dwuwymiarowe tablice struktur CHAR_INFO (zawierające dane atrybutów znaków i kolorów dla każdej komórki). Funkcje określają szerokość i wysokość, w komórkach znaków buforu źródłowego lub docelowego, a wskaźnik do buforu jest traktowany jako wskaźnik do komórki początkowej (0,0) tablicy dwuwymiarowej. Funkcje używają struktury SMALL_RECT , aby określić, który prostokąt ma być dostępny w buforze ekranu konsoli, oraz współrzędne lewej górnej komórki w buforze źródłowym lub docelowym określają lokalizację odpowiedniego prostokąta w tym buforze.
Te funkcje automatycznie przycinają prostokąt określonego buforu ekranu, aby mieścić się w granicach buforu ekranu konsoli. Jeśli na przykład prostokąt określa współrzędne prawego dolnego rogu (kolumna 100, wiersz 50), a bufor ekranu konsoli ma tylko 80 kolumn szerokości, współrzędne są obcięte tak, aby były (kolumna 79, wiersz 50). Podobnie ten skorygowany prostokąt zostanie ponownie obcięty, aby zmieścił się w granicach buforu źródłowego lub docelowego. Określono współrzędne buforu ekranu rzeczywistego prostokąta odczytanego z lub zapisanego na. Aby zapoznać się z przykładem korzystającym z tych funkcji, zobacz Odczytywanie i zapisywanie bloków znaków i atrybutów.
Ilustracja przedstawia operację ReadConsoleOutput , w której występuje wycinkowanie, gdy blok jest odczytywany z buforu ekranu konsoli, a następnie ponownie, gdy blok jest kopiowany do buforu docelowego. Funkcja zgłasza rzeczywisty prostokąt buforu ekranu skopiowany z.