Программирование >>  Автоматически обновляемые приложения 

1 ... 40 41 42 [ 43 ] 44 45 46 ... 170


Смена темы Windows ХР

Ранее мы уже рассматривали пример, в котором определяли наличие визуальных стилей ХР. Но существует еще сообщение wmthemechanged, которое посылается всем окнам при смене, активации и деактивации визуальных стилей Windows ХР. Таким образом, мы можем отслеживать это сообщение (листинг 5.36), чтобы поймать момент смены тем на компьютере. Для того чтобы переключиться в классический вид, нужно открыть апплет Панели управления Экран, выбрать вкладку Оформление и в списке Окна и кнопки выбрать Классический стиль.

Листинг 5.36, Отслеживание смены визуальных тем Windows ХР

const int WM THEMECHANGED = 0х031А;

protected override void WndProc(ref Message m) {

выводим сообщение

при смене визуальных стилей

if (m.Msg == WM THEMECHANGED)

MessageBox.Show ( Стиль изменился! ); base.WndProc (ref m);

В .NET Framework 2.0 появился новый класс visuaistyleinformation, в котором содержатся свойства, связанные с визуальными стилями ХР. Среди прочих есть свойство isEnabledByUser, С ПОМОЩЬЮ которого МОЖНО Определить, используется ли визуальный стиль ХР текущим пользователем. Заодно (листинг 5.37) посмотрим и на остальные свойства класса (рис. 5.3).

Листинг 5.37. Просмотр свойств класса Visuaistyleinf ormation

private void Forml Load(object sender, EventArgs e) {

listBoxl.Items.Add(Visuaistyleinformation.Author) ; listBoxl.Items.Add(Visuaistyleinformation.ColorScheme) ;

Примечание

Пример находится в папке TextForm на прилагаемом диске.



listBoxl.Items.Add(VisualStylelnformation.Company); listBoxl.Items.Add(VisualStyleInformation.Copyright); listBoxl.Items.Add(VisualStyleInformation.Description); listBoxl.Items.Add(VisualStyleInformation.DisplayName); listBoxl.Items.Add(VisualStylelnformation.IsEnabledByUser)


!;Грппа дизайна Майкрософт NormalCoior

Корпорация Майкрософт i fC) Корпорация Майкрософт, 2CG0 Стиль Оформления япя Windows ХР iMicrosofti

Стиль Windows ХР

True

Рис. 5.3. Просмотр свойств класса VisualStylelnformation

Примечание

Пример находится в папке VisualStyleInf© на прилагаемом диске.

Как форме получать уведомления

о нажатии кнопок, когда фокус ввода находится

в каком-либо элементе управления формы?

Это элементарная задача, она решается установкой свойства формы Form.KeyPreview В значение true. Для чего ЭТО нужно? Например, можно создать так называемое пасхальное яйцо. Предположим, мы зашиваем в программу какое-нибудь кодовое слово. Если пользователь нажмет клавиши в нужной последовательности, то на экран выпрыгивает какое-нибудь секрет-



public static string TestString = ;

private void Forml KeyPress(object sender, KeyPressEventArgs e) {

const string EASTER EGG = ТЕШД ;

TestString = TestString + e.KeyChar.ToString().ToUpper(); this.Text = TestString;

if (EASTER EGG.Substring(0, TestString.Length) != TestString) {

TestString = ;

else

if (EASTER EGG == TestString) {

MessageBox.Show( Возьми с полки пирожок ) TestString = ;

Примечание

Пример находится в папке EasterEgg на прилагаемом диске.

Как получить список всех открытых форм, принадлежащих приложению?

Вам необходимо получить доступ ко всем открытым формам, которые принадлежат вашему приложению? В .NET Framework 2.0 появилось свойство OpenForms, которое ОТНОСИТСЯ К классу Application. Вам нужно пройти в цикле через объект FormCollection ДЛЯ получения свойства OpenForms. Почитайте документацию.-

ное окно с фотографией. Для простоты примера ограничимся стандартным

MessageBox (ЛИСТИНГ 5.38).

i Листинг 5.38. Использование свойства KeyPreview



1 ... 40 41 42 [ 43 ] 44 45 46 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика