386______________________________________________Глава 6

6.2.2 Некоторые функции API Windows для управления
окнами

Теперь рассмотрим некоторые функции API Windows, позволяющие управ-
лять приложениями.

Функция CloseWindow сворачивает указанное в ней окно до пиктограммы и
перемещает ее в область пиктограмм экрана. Описание этой функции:

bool CloseWindow(HWND hWnd)

Параметр hWnd является дескриптором сворачиваемого окна. При успешном
выполнении функции возвращается ненулевое значение. При аварийном заверше-
нии возвращается нуль. Например, для сворачивания окна приложения «Кальку-
лятор», дескриптор которого мы определяли в предыдущем разделе, можно вы-
полнить оператор

CloseWindow(FindWindow("SciCalc","Калькулятор"));

использующий рассмотренную ранее функцию FindWindow.

Функция CloseWindow не уничтожает окно, а только сворачивает его. Для
уничтожения окна можно использовать функцию DestroyWindow, но она не разре-
шает уничтожать окно из другого потока.

Функция EnableWindow позволяет управлять доступом к окну. Ее описание
имеет вид:

bool EnableWindow(HWND hWnd, bool bEnable);

Параметр hWnd определяет дескриптор того окна, которое должно быть сде-
лано доступным или недоступным. Параметр bEnable задает устанавливаемое зна-
чение доступности: true — доступно, false — недоступно. Функция возвращает
нуль, если окно ранее было доступным, и возвращается ненулевое значение, если
оно не было доступным.

Функция EnableWindow делает указанное в ней окно доступным или недо-
ступным для любых действий пользователя с помощью мыши или клавиатуры.
Если окно недоступно, то предусмотренные и начатые в нем процессы продолжа-
ются, но пользователь не может воздействовать на это окно. Такое окно можно ис-
пользовать для демонстрации каких-то процессов пользователю, но пользователь
не может его ни свернуть, ни уничтожить.

Имеется еще множество функций API Windows для управления окнами. Они
позволяют переместить окно, передать на него фокус, изменить его текст и т.д. Вы
можете посмотреть информацию об этих функциях в файлах справки ...\program fi-
les\Common Files\Borland Shared\MShelp\95guide.hlp и ...\program files\Common Fi-
les\Borland Shared\MShelp\mapi.hlp.

6.3 Сообщения Windows и их обработка

6.3.1 Обработка сообщений в приложениях C++Builder

Выше мы рассмотрели некоторые функции API Windows, работающие с окна-
ми. Все они неявно использовали различные сообщения Windows. Но взаимодейст-
вие с другими приложениями, выполняющимися одновременно с вашим, может
быть и явным образом организовано с помощью сообщений Windows.

Приложения Windows состоят из множества объектов, которые взаимодейст-
вуют друг с другом, обмениваясь сообщениями (messages). Источниками этих сооб-
щений могут быть: пользователь, оперирующий с клавиатурой и мышью, среда
Windows, посылающая сообщения приложениям, другие приложения, обменива-