Меню в Вашей программе
Владимир Коробицын
Управление принтером. Мышь в роли карандаша
Создайте папку Lesson51. Поместите в нее пять произвольных файлов рисунков с расширениями BMP и WMF. Например, файлы 51.wmf, 52.wmf, 51.bmp, 52.bmp, 53.bmp. Желательно, чтобы размеры рисунков были небольшими, около 200х150 точек. Запустите Visual Basic. Увеличьте размеры формы Form1 примерно до половины общей площади экрана. Цвет формы должен быть белым. Разместите на форме все выбранные рисунки. Рисунки можно накладывать друг на друга, лишь бы они уместились в окне приложения. В окне Properties (Свойства) для всех рисунков свойству Visible (Видимость) придайте значение False (Ложь).
Чтобы построить систему меню в приложении, откройте окно разработки меню (Menu Design Window). Для этого на панели инструментов выберите Window (Окно), а затем Menu Design (Разработка меню) или нажмите сочетание клавиш <Ctrl + M>. В появившемся окне в текстовом блоке Caption (Надпись) запишите название для меню Вашего приложения, например, «Рисунки». А в текстовом блоке Name (Имя) запишите имя меню в программе, например, Pictures. Это и есть основные установки при создании системы меню. Затем щелкните мышью по кнопке Next (Далее) для создания следующего пункта меню. Впишите для него название «1» и имя в программе Pict1. Щелкните мышью по кнопке «стрелка вправо», для того чтобы эту строку превратить в команду для меню «Рисунки». Аналогичным образом создайте следующие команды меню. Для утверждения построенного меню щелкните мышью по кнопке «Ok».
А теперь необходимо провести обработку выборов меню. Если Вы запустите приложение, то команды меню работать не будут, так как они пока являются пустыми. Наполним их программным кодом. Для чего на форме Вашего приложения нажмите на меню «Рисунки». Тут же выпадет группа команд. Нажмите на команду «1». Появится окно программного кода для процедуры Pict1_Click. В эту процедуру прерывания впишите программный код:
Picture1.Visible = True
Picture2.Visible = False
Picture3.Visible = False
Picture4.Visible = False
Picture5.Visible = False
Нажмите на команду «2» и в процедуру прерывания Pict2_Click впишите программный код:
Picture1.Visible = False
Picture2.Visible = True
Picture3.Visible = False
Picture4.Visible = False
Picture5.Visible = False
Аналогичным образом заполните программным кодом процедуры прерывания для оставшихся трех команд меню. Запустите приложение. Посмотрите, как оно работает, поочередно вызывая посредством меню каждый из пяти рисунков. Закройте приложение.
Расширим возможности меню данного приложения. Вызовите окно Menu Design (Разработка меню). Нажмите на свободную строку, следующую за пунктом меню «5». В текстовом блоке Caption (Надпись) запишите название для следующего меню приложения, например, «Принтер». А в текстовом блоке Name (Имя) запишите имя меню в программе, например, Printer. Щелкните по кнопке Next (Далее) и по кнопке «стрелка вправо». В текстовом блоке Caption (Надпись) запишите название для команды второго меню «Печать». А в текстовом блоке Name (Имя) запишите имя меню в программе, например, Printer. Создайте следующую команду второго меню, для которой в текстовом блоке Caption (Надпись) запишите название для команды «Выход», а в текстовом блоке Name (Имя) запишите имя меню в программе, например, Exit. Для утверждения построенного меню щелкните мышью по кнопке «Ok». В меню «Принтер» нажмите на команду «Печать» и в процедуру прерывания Priter_Click запишите программный код, который будет печатать на бумаге содержимое окна формы:
Form1.PrintForm ‘ печать формы на бумагу
В меню «Принтер» нажмите на команду «Выход» и в процедуру прерывания Exit_Click запишите программный код:
End ‘ закрытие работы приложения
Запустите приложение. Выберите один из рисунков и распечатайте его на бумаге. Насладившись работой в приложении, закройте его с помощью команды «Выход». Сохраните проект приложения и создайте исполняемый EXE-файл.
А теперь изготовьте приложение для своих домочадцев, в котором они смогли бы порисовать. Создайте папку Lesson52. Запустите Visual Basic. В процедуру прерывания Form_MouseDown запишите строку:
Line – (x, y) ‘ рисование линии
Запустите приложение. Попробуйте рисовать. Остановите работу приложения. Замените программный код процедуры Form_MouseDown строками:
If Button And 1 Then Line – (x, y) ‘ рисование линии
If Button And 2 Then PSet (x, y) ‘ рисование точки
Теперь правой кнопкой мыши можно рисовать точки, а левой – линии, а главное при таком небольшом усложнении программы можно начать рисовать из любой точки окна приложения. Впрочем, попробуйте изобразить дом и дерево на некотором расстоянии друг от друга.
Для вызова в Вашем приложении набора цветных карандашей постройте меню «Цвет карандаша». В меню Window (Окно) выберите Menu Design (Разработка меню). В появившемся окне Menu Design Window (Окно разработки меню) запишите в текстовом блоке Caption (Надпись) название будущего меню «Цвет карандаша». Текстовый блок Name (Имя) заполните названием будущей процедуры Color. Указателем мыши щелкните по кнопке Next (Далее) и по стрелке «Вправо». В текстовый блок Caption впишите «Синий», а в текстовый блок Name запишите внутреннее имя меню – Blue. Аналогичным образом дополните еще два цвета: Red – «Красный» и Green – «Зеленый». Для утверждения построенного меню щелкните по кнопке «Ok». Для оживления меню наполните его программным кодом. В окне формы Form1 нажмите на меню «Цвет карандаша», а затем на команду «Синий». В появившемся окне программных утверждений в процедуру Blue_Click впишите строку:
ForeColor = RGB(0, 0, 255) ‘ синий цвет
В процедуру Red_Click поместите строку:
ForeColor = RGB(255, 0, 0) ‘ красный цвет
А в процедуру Green_Click поместите строку:
ForeColor = RGB(0, 255, 0) ‘ зеленый цвет
Свойство ForeColor (Передний цвет) принимает различные значения путем смешивания трех основных цветов – красный, зеленый, синий. Каждый из основных цветов задается целым числом в пределах от 0 до 255.
Запустите приложение на выполнение. Порисуйте в нем, используя различные цвета.
Расширим возможности меню. Вызовите окно разработки меню. Нажмите указателем мыши на свободную строку, следующую за строкой «Зеленый». В текстовом блоке Caption (Надпись) запишите название для следующего меню приложения, например, «Действие». А в текстовом блоке Name (Имя) запишите имя меню в программе, например, Action. Щелкните мышью по кнопке Next (Далее) и по кнопке «стрелка вправо». В текстовом блоке Caption (Надпись) запишите название для команды второго меню «Очистить». А в текстовом блоке Name (Имя) запишите имя меню в программе, например, CleSc. Утвердите меню, щелкнув мышью по кнопке «Ok». На форме приложения нажмите на меню «Действие» и «Очистить». Появится окно программного кода для процедуры CleSc_Click. В эту процедуру впишите строку, состоящую из одного оператора отвечающего за очистку окна приложения:
Cls ‘ очистка экрана
Поместите в меню команду, которая позволит пользователю распечатывать его рисунки на бумагу, так как это Вы сделали в предыдущем приложении. Отличие будет заключаться в том, что для свойства формы AutoRedraw (Автоматическое перерисовывание) Вам необходимо будет установить значение True (Истина). В противном случае рисунок не появится на бумаге! Завершите построение меню командой «Выход». Свойству формы Caption (Надпись) придайте значение «Альбом для рисования». Проверьте работу приложения. Сохраните вновь созданный проект и создайте для него исполняемый EXE-файл. Предложите кому-нибудь порисовать в Вашем приложении.
Расширьте возможности палитры приложения «Альбом для рисования». Для этого вызовите окно разработки меню (Menu Design Window). Воспользовавшись кнопкой Delete, удалите из системы меню приложения три ранее созданные Вами процедуры прерывания: Blue_Click, Red_Click и Green_Click. В процедуру прерывания Color_Click впишите программный код:
CMDialog1.Action = 3 ‘ активизация окна диалога ВЫБОР ЦВЕТА
ForeColor = CMDialog1.Color ‘ передача выбранного цвета
Во второй строке свойству ForeColor (Передний цвет) для объекта Form1 присваивается значение выбранного цвета в окне общего диалога «Выбор цвета». Теперь количество цветов для рисования в данном приложении будет ограничено только возможностями видеосистемы Вашего компьютера. Как правило, это более шестнадцати миллионов системных цветов.
Откомпилируйте проект приложения. Проверьте полученный EXE-файл в работе.
Самостоятельно изготовьте в данном приложении пункт меню с названием «Цвет бумаги» для изменения цвета фона рисования. Для этой цели используйте свойство BackColor (Цвет фона) объекта Form1 (Форма).
Домашнее задание
1. Создайте приложение, из которого можно будет запускать несколько видео-файлов с помощью меню.
2. Продолжите работу над расширением меню вышеуказанного приложения: сделайте так, чтобы из меню можно было вызвать показания часов компьютера, вывести текущую дату.
3. Расширьте цветовую палитру в приложении «Альбом для рисования».
4. Сделайте так, чтобы работу в «Альбоме для рисования» сопровождала спокойная мелодия. Мультимедийный объект MMControl должен быть невидимым.
5. В меню «Альбома для рисования» поместите команду «О программе», которая будет вызывать отдельное окно, содержащее сведения об авторе.
Список литературы
Для подготовки данной работы были использованы материалы с сайта http://bc.boom.ru/