Udostępnij przez


Informacje o kontrolkach paska postępu

Pasek postępu to okno, za pomocą którego aplikacja może wskazywać postęp długiej operacji.

Składa się z prostokąta, który jest animowany w miarę postępu operacji.

Na poniższej ilustracji przedstawiono pasek postępu, który nie używa stylów wizualizacji.

zrzut ekranu paska postępu, który dodaje prostokąty w wierszu, aby wskazać postęp

Na poniższej ilustracji przedstawiono pasek postępu przy użyciu stylów wizualizacji. Wygląd kontrolki będzie się różnić w zależności od systemu operacyjnego i wybranego motywu. Aby uzyskać więcej informacji, zobacz sekcję Style wizualne.

zrzut ekranu paska postępu, który wydłuża animowany zielony prostokąt wskazujący postęp

Więcej informacji znajduje się w poniższych nagłówkach.

Używanie pasków postępu

Pasek postępu można utworzyć przy użyciu funkcji CreateWindowEx, określając klasę okna PROGRESS_CLASS. Ta klasa okien jest rejestrowana po załadowaniu wspólnych kontrolek DLL. Aby uzyskać więcej informacji, zobacz About Common Controls.

Kontrolka jest również dostępna w przyborniku programu Microsoft Visual Studio, gdzie jest nazywana kontrolką Postępu.

Zakres i bieżąca pozycja

Zakres paska postępu reprezentuje cały czas trwania operacji, a bieżąca pozycja reprezentuje postęp, jaką aplikacja osiągnęła na drodze do zakończenia operacji. Procedura okna używa zakresu i bieżącego położenia, aby określić procent paska postępu do wypełnienia kolorem wyróżnienia.

Jeśli nie ustawisz wartości zakresu, system ustawi wartość minimalną na 0 i wartość maksymalną na 100. Zakres można dostosować do wygodnych liczb całkowitych przy użyciu komunikatu PBM_SETRANGE.

Pasek postępu zawiera kilka komunikatów, których można użyć do ustawienia bieżącej pozycji. Komunikat PBM_SETPOS ustawia pozycję na daną wartość. Komunikat PBM_DELTAPOS zmienia położenie, dodając określoną wartość do bieżącego położenia.

Komunikat PBM_SETSTEP umożliwia określenie przyrostu kroku dla paska postępu. Następnie za każdym razem, gdy wysyłasz komunikat PBM_STEPIT do paska postępu, bieżąca pozycja zwiększa się o określony przyrost. Domyślnie przyrost kroku jest ustawiony na 10.

Domyślne przetwarzanie komunikatów paska postępu

W tej sekcji opisano komunikaty obsługiwane przez procedurę okna dla klasy PROGRESS_CLASS.

Komunikat Przetwarzanie wykonane
WM_CREATE Przydziela i inicjuje początkową strukturę.
WM_DESTROY Zwalnia wszystkie zasoby skojarzone z paskiem postępu.
WM_ERASEBKGND Rysuje tło oraz obramowania paska postępu.
WM_GETFONT Zwraca uchwyt do bieżącej czcionki. Pasek postępu nie rysuje obecnie tekstu, dlatego wysłanie tej wiadomości nie ma wpływu na kontrolkę.
WM_PAINT Rysuje pasek postępu. Jeśli parametr wParam jest inny niżnull, kontrolka przyjmuje założenie, że wartość jest HDC i maluje przy użyciu tego kontekstu urządzenia.
WM_SETFONT Zapisuje uchwyt do nowej czcionki i zwraca uchwyt do poprzedniej czcionki. Pasek postępu nie rysuje obecnie tekstu, dlatego wysłanie tej wiadomości nie ma wpływu na kontrolkę.

 

Styl markizy

Tworząc element sterujący paska postępu z zastosowaniem stylu PBS_MARQUEE, można go animować w taki sposób, że pokazuje aktywność, ale nie wskazuje, jaka część zadania jest ukończona. Wyróżniona część paska postępu jest wielokrotnie przesuwana wzdłuż długości paska. Możesz uruchomić i zatrzymać animację oraz kontrolować jego szybkość, wysyłając komunikat PBM_SETMARQUEE. Paski postępu typu 'marquee' nie mają zakresu ani pozycji.

Na poniższej ilustracji przedstawiono pasek postępu w trybie markizy. Wyróżniona część porusza się po pasku.

zrzut ekranu paska postępu, który przenosi zielone wyróżnienie na szary prostokąt, aby wskazać postęp