При использовании компонента SCROLLBAR необходимо учитывать, что этот компонент генерирует и принимает сообщения, указанные в следующем списке.
? Сообщения WMJHSCROLL и WMJHSCROLL посылаются родительскому окну при изменении положения движка компонента.
? Сообщения SBMGETSCROLLINFO и SBMSETSCROLLINFO посылаются компоненту для установки его параметров и положения движка.
Кроме этого существуют функции API SetScrollInfo и GetScrollInfo, выполняющие те же самые действия, но без явной посылки сообщения.
Компонент STATIC позволяет вывести РЅР° определенное место формы статический текст или изображение, хранящееся РІ файле ресурсов. Ртот компонент настолько РїСЂРѕСЃС‚, что РІ отдельном рассмотрении РЅРµ нуждается.
Компоненты Common Controls, меню и редактор ресурсов
Меню
РџСЂРё создании простого приложения среда сама создает строку главного меню, РёР· которого вызывается диалоговое РѕРєРЅРѕ About. Рта линейка служит РѕСЃРЅРѕРІРѕР№ для создания главного меню приложения, которое может быть сколь СѓРіРѕРґРЅРѕ сложным. РџРѕ большому счету, РІСЃСЏ работа РїРѕ созданию меню заключается РІ работе СЃ редактором ресурсов Рё написании обработчиков сообщений, которые принимаются РѕС‚ соответствующих пунктов меню.
Упражнение 4.5
1. Создать простое приложение и сохранить его с именем Menu.
2. В окне Workspace перейти на вкладку ResourceView, открыть корневую папку Menu resources и в ней раскрыть папку Menubar. Внутри папки располагается элемент IDM_MENU. Двойной щелчок на этом элементе откроет редактор меню (рис. 4.7).
Рис. 4.7. Редактор меню.
3. Если в редакторе меню выделить уже созданный пункт (Tools), то его можно будет редактировать. Если требуется создать новый пункт меню, необходимо совершить двойной щелчок на пустом прямоугольнике справа от существующего пункта меню. На экран будет выведено окно редактирования нового пункта меню (рис. 4.8).
Рис. 4.8. Окно редактирования пункта меню.
4. Теперь следует дважды щелкнуть РЅР° прямоугольнике справа РѕС‚ команды Tools Рё установить для этого пункта меню флажок General ? Separator. Рто приведет Рє созданию вертикального разделителя РЅР° строке меню.
5. Следующий прямоугольник справа позволяет создать еще один пункт меню. Для него свойство Caption должно получить значение File. Также следует взвести флажки Pop-up, Autosize и No wrap.
6. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение File1.
7. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение File2, а свойство Break – значение Bar.
8. Подняться на один прямоугольник вверх и взвести флажок Separator.
9. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение File3. Также необходимо взвести флажок Checked.
10. В результате этих действий должна получиться структура меню, показанная на рис. 4.9.
Рис. 4.9. Редактирование пункта меню File.
11. Сместиться на один прямоугольник вправо на основной строке меню. Для него свойство Caption должно получить значение Edit. Также следует взвести флажки Pop-up, Autosize и No wrap.
12. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение Ed1. Также следует взвести флажок Pop-up.
13. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение Ed2.
14. Подняться на один прямоугольник вверх и взвести флажок Separator.
15. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение Ed3.
16. Выделить пункт Ed1, переместиться на пустой прямоугольник справа, и для нового пункта меню установить значение свойства Caption равным E1.
17. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение E2, а свойство Break – значение Column. Также нужно взвести флажок Checked.
18. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение E3. Также нужно взвести флажок Checked.
19. На рис. 4.10 показана структура созданного меню.
Рис. 4.10. Редактирование пункта меню Edit.
20. Сдвинуться на один прямоугольник вправо на основной строке меню и взвести флажок Separator.
21. Сдвинуться на один прямоугольник вправо на основной строке меню и взвести флажки CheckButton, Group, Autosize, No wrap, Pressed и Bitmap. Свойство Bitmap Index должно получить нулевое значение.
22. Сдвинуться на один прямоугольник вправо на основной строке меню и взвести флажки CheckButton, Group, Autosize, No wrap и Bitmap. Свойство Bitmap Index должно получить значение 1.
23. Сдвинуться на один прямоугольник вправо на основной строке меню и взвести флажок Separator.
24. Подняться на один прямоугольник вверх. Для нового пункта меню свойство Caption должно получить значение UnGroup. Также нужно взвести флажки CheckButton, Autosize, No wrap и Pressed.
25. Результат должен получиться такой, как показано на рис. 4.11.