Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: jankowalski25
Biblioteki C/C++

WriteConsoleOutput

[funkcja] Zapisuje znaki i atrybuty kolorów danych do prostokątnego bloku komórek znaków w buforze ekranu konsoli.

Składnia

C/C++
#include <windows.h>

BOOL WINAPI WriteConsoleOutput(
HANDLE hConsoleOutput,
const CHAR_INFO * lpBuffer,
COORD dwBufferSize,
COORD dwBufferCoord,
PSMALL_RECT lpWriteRegion
);

Argumenty

ArgumentOpis
hConsoleOutputUchwyt do bufora ekranu konsoli. Uchwyt musi mieć dostęp GENERIC_WRITE.
lpBufferDane zapisywane do bufora ekranu konsoli. Ten wskaźnik jest traktowany jako początek dwuwymiarowej tablicy struktur CHAR_INFO, których rozmiar jest określony przez argument dwBufferSize. Miejsce w pamięci na ten bufor jest alokowane na stercie dla procesu zajmującego 64 KB pamięci. Maksymalny rozmiar bufora zależy od użycia sterty.
dwBufferSizeRozmiar bufora wskazywanego przez argument lpBuffer, w komórkach znaków.
dwBufferCoordWspółrzędne lewej górnej komórki wskazywanej przez argument lpBuffer.
lpWriteRegionWskaźnik do struktury SMALL_RECT. Przy przekazywaniu danych do funkcji na liście argumentów składowe struktury określają współrzędne lewego górnego i prawego górnego rogu prostokąta bufora ekranu konsoli do zapisania. Gdy funkcja zakończy swoje działanie, składowe struktury określają aktualnie używany prostokąt.

Zwracana wartość

Jeśli nie wystąpią błędy, zwracana wartość jest niezerowa, inaczej 0. Aby uzyskać szczegółowe informacje o błędzie, wywołaj funkcję » WinAPIGetLastError.

Dodatkowe informacje

Funkcja traktuje bufor źródłowy i bufor docelowy jako dwuwymiarowe tablice. Prostokąt wskazywany przez wartość argumentu lpWriteRegion określa rozmiar i lokalizację bloku danych do zapisania w buforze ekranu konsoli. Prostokąt o tych samych rozmiarach jest umieszczony w tablicy lpBuffer (lewa górna komórka ma współrzędne zawarte w argumencie dwBufferCoord). Dane z komórek, które są wspólne dla tego prostokąta i prostokąta bufora źródłowego (którego rozmiary są określone przez wartośc argumentu dwBufferSize) są zapisywane do docelowego prostokąta. Komórki w docelowym prostokącie, które znajdują się poza granicami bufora źródłowego nie zostaną zmienione (żadne dane bufora ekranu nie są dla nich dostępne do zapisania). Przed zwróceniem wartości przez tą funkcję składowe struktury wskazywanej przez argument lpWriteRegion są ustawiane na aktualny prostokąt bufora ekranu. Ten prostokąt pokazuje komórki w docelowym buforze, dla których istnieją odpowiednie komórki w buforze źródłowym. Funkcja obcina wymiary docelowego prostokąta do granic bufora ekranu konsoli. Jeśli cały obszar prostokąta określonego przez lpWriteRegion znajduje się poza granicami bufora ekranu konsoli lub jeśli prostokąt jest umieszczony poza granicami bufora źródłowego, żadne dane nie zostaną zapisane. W tym przypadku funkcja zakończy swoje działanie ze składowymi struktury wskazywanej przez argument lpWriteRegion ustawionych w taki sposób, że składowa Right będzie mniejsza od składowej Left lub składowa Bottom będzie mniejsza od składowej Top. Aby określić rozmiar bufora ekranu konsoli, wywołaj funkcję » WinAPIGetConsoleScreenBufferInfo. Ta funkcja nie zmienia pozycji kursora bufora ekranu konsoli. Ta funkcja używa 8-bitowych znaków Unicode z obecnej strony kodowej konsoli. Domyślna strona kodowa jest stroną kodową OEM. Do zmiany strony kodowej służą funkcje » WinAPISetConsoleCP oraz » WinAPISetConsoleOutputCP. Można również użyć polecenia
chcp
 lub
mode con cp select=id_strony_kodowej
.

Wymagania

Minimalny system klientaWindows 2000 Professional (tylko aplikacje biurowe).
Minimalny system serweraWindows 2000 Server (tylko aplikacje biurowe).
NagłówekWincon.h (dołącza Windows.h)
BibliotekaKernel32.lib
DLLKernel32.dll
UNICODEWriteConsoleOutputW
ANSIWriteConsoleOutputA

Linki zewnętrzne