It's difficult learn how Progress bar works..
|
Прежде чем писпользовать PROGRESS.DLL в своей программе, ознакомьтесь с
примером (prtest.c).
|
When to use Progress bar?
|
Open the window with progress bar if operation requires more than 5-10 seconds.
You should provide Cancel button to user.
|
Why to use our Progress bar?
|
- we draw eye-candy progress bar
- we are sorting text strings on the surface of the window
- we calculate the size of the window
|
Which kind of Progress bar to use?
|
Use Round PBar for applications which are rebuilding / changing / destroying something.
Don't use Round PBar for copy / search operations.
|
How to create modal window |
Для того, чтобы сделать окно модальным или системно-модальным воспользуйтесь
функциями WinProcessDlg() и WinSetSysModalWindow().
Если была вызвана функция WinProcessDlg(), для её завершения следует
выполнить WinDismisssDlg(). Ни в коем случае нельзя уничтожать модальный
диалог прогресса (WinDestroyWindow()) до того, как вызвана
WinDismisssDlg()! Не стоит также, пытаться открывать какие либо новые
окна (например, Message Box'ы), пока существует системно модальное окно.
Пользователь всё равно, не сможет ими воспользоваться.
|
How to perform additional initialization? |
Если нужно произвести дополнительную инициализацию прогресса после его создания (например, установить атрибуты некоторых контролов), нужно создавать его без флага PRS_SHOW. После того, как дополнительная инициализация произведена, диалог можно показать с помощью WinShowWindow().
|
How to use own PNG pictures?
|
Для использования своих картинок, их следует поместить в ресурсы исполнимого файла, или DLL ресурсов. Картинки должны иметь тип RT_PNG (определён в "progress.h"), а их ID должны идти подряд. ID первой картинки следует указать при вызове PrgShowDlg(). Для полоси всегда используются две картинки. Для иконки (круглого прогрессбара) используются столько картинок, сколько будет найдено (до первого несуществующего ID), но не более 101. Если указано использовать икноку или графическую полоску, но картинок для них в ресурсах найдено менее 2-х, диалог прогресса не будет найден и функция вернёт FALSE.
|
The window is jumping, changing size during the process
|
Если какую-либо из надписей предполагается менять в процессе, следует при инициализации задать для неё заведомо большую строку, например " ", а затем, устанавливать новую надпись функцией PrgSetupCaption() указав в параметре flUpdate значение FALSE.
|
Text on buttons
|
MSG-BOX-1: It's a good idea to use your own captions on the buttons instead
of the default. Always use verbs as captions: "Close window",
"Do not close", "Overwrite file", "Keep file" instead of "Yes",
"No", "OK", etc.
|
Progress-bar animation only
|
How to disable all text strings, frames and keep progress-bar animation only?
All strings as NULL, disable frames
|
How to put Progress-bar dialog to the center of desktop?
|
You can do this manually:
example
|
How can I tell a progress bar the place to draw itself?
|
no information
|
Is there are way to set the position within it's client window (owner)?
|
no information
|
How can I calculate the size of a progress bar?
|
no information
|
Can I draw the bar without any caption?
|
no information
|
Can there be an implementation of progressbar as a static control window?
|
no information
|
| |