Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Изменения кода для определения активной формы в приложении MDI




Изменения кода для определения активной формы

Изменения кода для определения активного элемента управления

Свойства TwipsPerPixel

Свойство MousePointer

Свойство ActiveForm

Свойство ActiveControl

В Visual Basic 6.0 свойство ActiveControl объекта Screen используется для определения элемента управления, на котором установлен фокус. Свойство ActiveControl может использоваться глобально, например в Screen.ActiveControl, где возвращается активный элемент управления на форме, выделенной в данный момент. Если обращение производится к определенной форме, например Form2.ActiveControl, свойство ActiveControl определяет элемент управления, который получит фокус, если указанная форма является активной.

В Visual Basic 6.0 свойство ActiveForm объекта Screen используется для определения формы, имеющей в данный момент фокус. Если родительская форма MDI имеет фокус, ActiveForm возвращает дочернюю форму MDI, которая имела фокус до этого.

В Visual Basic 6.0 свойство MousePointer объекта Screen используется для изменения внешнего вида курсора. После задания оно применяется ко всем формам приложения.

В Visual Basic 6.0 свойства TwipsPerPixelX и TwipsPerPixelY объекта Screen используются для преобразования размерности экрана из логических твипов (стандартная единица измерения в Visual Basic 6.0) в точки.

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

' Visual Basic 6.0

If TypeOf Screen.ActiveControl Is TextBox Then

Clipboard.SetText Screen.ActiveControl.Text

End If

В следующем примере кода демонстрируется изменение заголовка выделенной в данный момент формы:

' Visual Basic 6.0

Screen.ActiveForm.Caption = "This is the selected form"

В следующем примере кода демонстрируется изменение заголовка выделенной в данный момент дочерней формы MDI:

' Visual Basic 6.0

Screen.ActiveForm.Caption = "This is the selected child form"

В Visual Basic существуют объекты, не отображаемые на форме, но использование которых несложно и может принести некоторую пользу. В прошлых главах мы говорили об объектах Printer, Err и DataObject. Давайте поговорим еще о некоторых.

Объект Screen

По-сути, объект Screen представляет собой весь экран или иначе Десктоп (DeskTop). Как и другие объекты, объект Screen имеет определенные свойства. Так, например, почему-то считается, что для определения разрешения экрана надо использовать API-функции. Но это прекрасно можно сделать и внутренними возможностями VB. У объекта Screen есть свойства .Height и .Width, которые и возвращают высоту и ширину экрана в твипах. Эти самые твипы легко преобразовать в пиксели, если использовать два других свойства объекта Screen - .TwipsPerPixelX (которое возвращает количество твипов в пикселе по-горизонтали) и .TwipsPerPixelY (которое возвращает количество твипов в пикселе по-вертикали). Таким образом, чтобы определить разрешение экрана, мы пишем приблизительно следующий код:

Private Sub Command1_Click()
'Объявить переменные

Dim VisotaScr As Long 'для высоты
Dim ShirinaScr As Long 'для ширины
VisotaScr = Screen.Height / Screen.TwipsPerPixelX 'узнаем высоту экрана и преобразовываем ее в пиксели
ShirinaScr = Screen.Width / Screen.TwipsPerPixelY 'узнаем ширину экрана и преобразовываем ее в пиксели
Text1 = VisotaScr & " x " & ShirinaScr 'выводим результат в Text1

End Sub

Еще одно свойство .ActiveControl содержит ссылку на элемент управления (и его свойства), имеющий фокус. Смысл использования этого свойства следующий. Например, у тебя на формe три текстбокса. И ты хочешь активный текстбокс очистить. Вот в этом случае и можно использовать свойство.ActiveControl, например

Screen.ActiveControl.Text=""

т. е. очищается тот объект (в нашем случае TextBox), на котором в данный момент находится фокус. Это, конечно, несколько упрощено, по-скольку, во-первых, необходимо проверить, а текстбокс ли это? Может у тебя на форме есть другие элементы, например, PictureBox. Во-вторых, реально это свойство можно использовать только в меню, так как меню не получает фокус и активным элементом остается выбранный объект. При использовании, например, свойства.ActiveControl в процедуре CommandButton, при нажатии на кнопку Command1 фокус перейдет с нужного нам элемента на командную кнопку и мы не получим желаемого результата. Ниже, в этой главе, мы на примере работы с объектом Clipboard будем использовать это свойство применительно к меню.

Аналогично свойству.ActiveControl и свойство и .ActiveForm, но содержит ссылку на активную форму. Тогда, чтобы добраться до какого-либо элемента можно применить, например, такой оператор:
Screen.ActiveForm.ActiveControl.Picture

Надо сказать, что объект Screen имеет еще свойства MouseIcon и MousePointer, которые позволяют менять вид курсора, но их использование совершенно аналогично этим свойствам для формы, которые мы анализировали в главе 5. Поэтому я не стану занимать этой дребеденью наше драгоценное время и предлагаю перейти к более нужному и интересному.




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 611; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.