Скин

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Скин

Сообщение kuhtiov » 06.10.2006 (Пт) 12:34

Такая тема, делаю скин для проги. Застрял на одном моменте. Хочется сделать, что-бы цвет заголовка активного окна и неактивного отличались. Сразу ни одной мысли (путевой) не пришло. Решил покапаться по поиску. ОБЛОМ. Вот вопрос к вам. Если бы вы делали такую фигню, как бы бы опрелили состояние окна?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 06.10.2006 (Пт) 12:53

Получать хэндл активного окна при помощи GetForegroundWindow и сравнивать его со хэндлом своего окна.

Обрабатывать события Form_Activate, Form_LostFocus, Form_GotFocus
Весь мир матрица, а мы в нем потоки байтов!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 06.10.2006 (Пт) 13:10

Пасибо, и енто, еще вопрос. Задумка была присвоить состояние окна к переменной. Это тупо или еще как-то можно. У меня просто опыта в создании скинов небыло. Алгоритм мутновато видется!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.10.2006 (Сб) 12:48

!Viper!
Form_Activate, Form_LostFocus, Form_GotFocus работают только в пределах приложения. Т.е. при переключении от Form1 к Form2

При переключении с окна своего приложения, к другому окну - события не работают.

Правильный способ писал(а):Получать хэндл активного окна при помощи GetForegroundWindow и сравнивать его со хэндлом своего окна.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.10.2006 (Сб) 15:05

Хакер писал(а):
Правильный способ писал(а):Получать хэндл активного окна при помощи GetForegroundWindow и сравнивать его со хэндлом своего окна.

По таймеру, что ли?
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.10.2006 (Сб) 15:47

Ну автору же надо это когда нибудь узнать? :wink:
Он, допустим, хотел присваивать переменной текущее состояние окна. так? так. а потом он хотел его получать из переменной.

Так вот в тот момент, когда он хотел его получать нужно и делать "Правильный способ".

Т.е. если он например хотел при отрисовке делать
Код: Выделить всё
If MyWindowActive Then
рисуем_активный_заголовок
else
рисуем_неактивный_заголовок
end if


Так вот, здесь вместо переменной MyWindowActive вставить имя функции (своей), которая будет делать "Правильный способ".

Вобщем, принцип таков...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 11.10.2006 (Ср) 11:41

Всем огромное спасибо.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 11.10.2006 (Ср) 21:28

Дык это а разве окну уже не шлется сообщение WM_KILLFOCUS при потере им фокуса ?
Если всё делать своими ручками, они скоро отвалятся !

X-hacker
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 26.08.2006 (Сб) 1:22
Откуда: Moldova

Сообщение X-hacker » 06.11.2006 (Пн) 12:26

Маааленький совет по скину:
чтоб не мучаться, и если у тя WinXP, меняешь стандартную синенькую
окраску на серебристую, делаешь скриншот, и в паинте например, инвертируешь его.Получается красивый, темный заголовок(я вообще всё окно таким делаю, а кнопки, с зелёной подсветской на чёрном фоне тоже ничего, красиво :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 128

    TopList