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