Простые фокусы с мышью

We use cookies. Read the Privacy and Cookie Policy

Простые фокусы с мышью

В VBA есть несколько свойств, которые позволяют управлять тем, что увидят пользователи программы при разглядывании формы, двигая указатель мыши туда-сюда по экрану.

Самое главное, что никакого программирования событий при этом не требуется!

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

1. Выделите форму или элемент управления, для которого потребуется изменить вид указателя мыши.

2. Найдите в списке окна свойств свойство MousePointer и щелкните в поле этого свойства.

3. Выберите подходящий пункт из раскрывающегося списка этого поля.

Все пункты раскрывающегося списка, кроме одного, соответствуют указателям мыши, задаваемым с помощью панели управления Windows (конкретно, на вкладке Указатели панели управления Мышь). Так что при выборе этих пунктов вид указателя в выполняемой программе будет на самом деле зависеть от той графики, которая назначена соответствующему типу указателя в панели управления Windows.

Если назначить специальный указатель мыши форме, то он получит соответствующий вид в рамках формы, включая все ее элементы управления (кроме тех, которым приписаны указатели иного вида).

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

Или, может быть, вы захотите видеть более приятное изображение, например золотую рыбку (рис. 19.3).

Рис. 19.3. Пользовательский указатель мыши на форме VBA

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

1. Создайте новую пиктограмму или возьмите готовую из коллекции рисунков.

Изображение нужно сохранить в стандартном формате Windows для пиктограмм, в файле с расширением .ico

2. Выполнив инструкцию, предложенную в предыдущем разделе "Изменение вида указателя мыши", установите для свойства MousePointer формы значение 99.

3. Щелкните в поле свойства MouseIcon.

4. Щелкните на кнопке, вызывающей диалоговое окно (на кнопке с многоточием).

VBA откроет диалоговое окно Load Picture (Загрузка рисунка), с помощью которого можно найти и открыть файл с картинкой для вашего указателя мыши.

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

И еще, всплывающие подсказки предусмотрены только для элементов управления, но не для содержащей их формы.

Чтобы назначить элементу управления всплывающую подсказку, просто напечатайте подходящий текст в поле свойства Tool Tip. Пример того, что вы можете получить, показан на рис. 19.4.

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

Рис. 19.4. ЧТО же делает эта кнопка? Указания на этот счет дает всплывающая подсказка

Элемент управления Image (Изображение)- тот элемент управления в панели

Toolbox, пиктограмма которого напоминает картину,- можно использовать не только для того, чтобы размещать в нем изображения. Элемент управления Image - это, по сути, просто надпись без заголовка. Поэтому вы можете для размещения изображений использовать элемент управления надписью ( Label ), очистив поле свойства Caption (Заголовок), если текст на элементе управления не нужен.

Рис. 19.5. В эту форму и ее элементы управления добавлены изображения

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

1. Щелкните на форме или элементе управления, куда нужно поместить прекрасный рисунок.

2. В окне свойств для выделенного объекта щелкните в поле свойства Picture.

3. Щелкните на открывающей диалоговое окно кнопке с многоточием, которая теперь появилась в поле свойства Picture.

4. В открывшемся диалоговом окне Load Picture (Загрузка рисунка) найдите файл с нужным изображением и щелкните на кнопке Открыть, чтобы добавить изображение в объект.

В форме (или элементе управления) появится рисунок.

5. Используйте свойства PictureAlignment, PictureSizeMode и Picture Tiling (если они есть у того объекта, с которым вы работаете), чтобы разместить рисунок так, как вам нравится. Вот некоторые подробности об этих свойствах.

* Выбрав подходящее значение свойства PictureAlignment, можно разместить изображение либо по центру, либо в углу объекта.

* Выбрав подходящее значение свойства PictureSizeMode, можно либо растянуть изображение так, чтобы оно заняло всю поверхность объекта (соответствующее значение- fmPictureSizeModeStretch), либо пропорционально сжать изображение, чтобы оно поместилось в объекте (fmPictureSizeModeZoom). либо оставить размер изображения как есть, обрезав лишнее (fmPictureSizeModeClip).

* Для свойства Picture Tiling допускаются всего два значения- True (т.е. VBA нужно размножить изображение и заполнить копиями весь объект) и False.

Поиграв некоторое время с рисунками в формах, не исключено, что вы придете к выводу, что "спартанский" вид для форм предпочтительнее. Чтобы удалить изображение из элемента управления или формы, щелкните в поле свойства Picture в окне свойств, а затем нажмите клавишу <Delete>. Другие методы не работают - ни нажатие <Ctrl+X>, ни нажатие клавиши пробела или печатание и даже нажатие клавиши <Backspace>.