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++

SetConsoleMode

[funkcja] Ustawia tryb bufora ekranu konsoli.

Składnia

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

BOOL WINAPI SetConsoleMode( HANDLE hConsoleHandle, DWORD dwMode );

Argumenty

ArgumentOpis
hConsoleHandleUchwyt do bufora ekranu konsoli. Uchwyt musi mieć dostęp GENERIC_READ.
dwModeTryb do ustawienia. Jeśli wartość argumentu hConsoleHandle dotyczy bufora wejściowego, wartość tego argumentu może składać się z poniższych stałych. Podczas tworzenia konsoli domyślnie tylko tryb ENABLE_WINDOW_INPUT nie jest dostępny.
NazwaWartośćZnaczenie
ENABLE_ECHO_INPUT0x0004Znaki odczytywane przez funkcję ReadFile lub » WinAPIReadConsole są zapisywane do aktywnego bufora ekranu podczas odczytywania. Ten tryb może być używany tylko w połączeniu z trybem ENABLE_LINE_INPUT.
ENABLE_EXTENDED_FLAGS0x0080Tryb używany do włączania lub wyłączania dodatkowych flag. Połączenie tego trybu z innymi flagami powoduje ich włączenie. Flagi, które nie zostaną podane zostaną wyłączone.
ENABLE_INSERT_MODE0x0020Kiedy ten tryb jest ustawiony, tekst wprowadzany w oknie konsoli zostanie wstawiony w miejscu kursora i cały poniższy tekst nie zostanie nadpisany, inaczej cały tekst zostanie nadpisany.
ENABLE_LINE_INPUT0x0002Funkcja ReadFile lub » WinAPIReadConsole zakończy działanie tylko, gdy zostanie odczytany znak powrotu karetki (CR). Jeśli ten tryb jest wyłączony, wymienione funkcje zakończą działanie, gdy co najmniej jeden znak zostanie odczytany.
ENABLE_MOUSE_INPUT0x0010Jeśli wskaźnik myszy jest wewnątrz okna konsoli i okno ma fokus klawiatury, zdarzenia myszy są umieszczane w buforze wejściowym. Te zdarzenia są pomijane przez funkcję ReadFile oraz » WinAPIReadConsole, jeśli ten tryb jest włączony.
ENABLE_PROCESSED_INPUT0x0001Flaga powoduje, że znak sterujący CTRL+C jest przetwarzany przez system i nie jest umieszczany w buforze wejściowym. Jeśli bufor wejściowy jest odczytywany przez funkcję ReadFile lub » WinAPIReadConsole, inne znaki sterujące są przetwarzane przez system i nie są zwracane w buforze funkcji ReadFile lub » WinAPIReadConsole. Jeśli tryb ENABLE_LINE_INPUT jest również włączony, znaki backspace, powrotu karetki (CR) i nowej linii (LF) są obsługiwane przez system.
ENABLE_QUICK_EDIT_MODE0x0040Ta flaga pozwala na używanie myszy do zaznaczania i edycji tekstu.
ENABLE_WINDOW_INPUT0x0008Działania użytkownika zmieniające rozmiar bufora ekranu konsoli są umieszczane w buforze ekranu konsoli. Informacje o tych zdarzeniach mogą być odczytane z bufora wejściowego za pomocą funkcji » WinAPIReadConsoleInput.
 Jeśli wartość argumentu hConsoleHandle dotyczy bufora ekranu, wartość tego argumentu może składać się z poniższych stałych. Podczas tworzenia bufora ekranu oba tryby są domyślnie włączone.
NazwaWartośćZnaczenie
ENABLE_PROCESSED_OUTPUT0x0001Znaki zapisywane przez funkcję » WinAPIWriteFile lub WriteConsole albo odczytywane przez funkcję ReadFile lub » WinAPIReadConsole są sprawdzane poprzez kontrolę sekwencji ASCII. Znaki backspace, tabulatory (tab), dźwiękowe (bell), powrotu karetki (CR) i nowej linii (LF) są przetwarzane.
ENABLE_WRAP_AT_EOL_OUTPUT0x0002Podczas zapisywania danych przez funkcję » WinAPIWriteFile lub WriteConsole albo odczytywania ich przez funkcję ReadFile lub » WinAPIReadConsole kursor przemieszcza się na początek następnego wiersza po napotkaniu końca obecnego wiersza. To powoduje automatyczne przewijanie wierszy wyświetlanych w oknie konsoli, gdy kursor znajdzie się za ostatnim wierszem w oknie. To powoduje również przewijanie treści bufora ekranu konsoli (utratę górnego wiersza bufora ekranu konsoli), gdy kursor znajdzie się za ostatnim wierszem w buforze ekranu konsoli. Jeśli ten tryb jest wyłączony, ostatni znak w wierszu jest nadpisywany przez kolejne znaki.

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

Konsola składa się z bufora wejściowego oraz z buforów ekranu. Tryb bufora konsoli określa, jak konsola zachowuje się podczas odczytywania i zapisywania danych. Jedno ustawienie stałych flag jest używane z uchwytami wejścia, natomiast inne ustawienia są używane do uchwytów buforów ekranu (wyjścia). Ustawienie trybu wyjścia jednego bufora ekranu nie zmienia trybu wyjścia innych buforów ekranu. Tryby ENABLE_LINE_INPUT i ENABLE_ECHO_INPUT tylko powodują przetwarzanie używane w funkcji ReadFile albo ReadConsole do odczytywania z buforu wejścia konsoli. Podobnie tryb ENABLE_PROCESSED_INPUT głównie jest używany w funkcji ReadFile albo ReadConsole. Oprócz tego określa również, czy znak CTRL+C jest wstawiany do bufora wejściowego (do odczytania przez funkcję ReadConsoleInput) lub jest przekazywany do funkcji zdefiniowanej przez programistę. Tryby ENABLE_WINDOW_INPUT oraz ENABLE_MOUSE_INPUT określają, czy interakcje użytkownika obejmujące zmianę rozmiaru okna i akcje związane z użyciem myszy są przekazywane do bufora wejściowego, czy mają być odrzucane. Te zdarzenia mogą byc odczytane przez funkcję ReadConsoleInput, ale są zawsze przechwytywane przez funkcję ReadFile lub ReadConsole. Tryby ENABLE_PROCESSED_OUTPUT i ENABLE_WRAP_AT_EOL_OUTPUT powodują przetwarzanie z użyciem funkcji ReadConsole, » WinAPIWriteFile, » WinAPIWriteFile lub WriteConsole. Aby określić obecny tryb bufora wejściowego lub bufora ekranu konsoli, wywołaj funkcję » WinAPIGetConsoleMode.

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

Linki zewnętrzne