Окно поверх всех

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

Окно поверх всех

Сообщение HotKitten » 17.07.2006 (Пн) 20:08

Вот решил написать маленькую прогу для Уфимского форума, где с часто сижу, и парюсь уже часа 2...
посмотрите плиз код, почему когда ставишь окно поверх всех - оно просто пропадает! ведь уже много раз делал, и было всё нормально, а сейчас не получается! API Guide уже смотрел раз 20...
HELP! может я просто глючу???? или система глюкнула?
Вложения
sourse.rar
вот код
(72.13 Кб) Скачиваний: 40
Изображение

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

Сообщение Хакер » 17.07.2006 (Пн) 20:37

Код: Выделить всё
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_DRAWFRAME


потому что 0, 0, 0, 0

А это аналогчно:

Left = 0
Top = 0
Width = 0 - Left
Height = 0 - Top
—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 » 17.07.2006 (Пн) 20:40

Хакер, там ведь SWP_NOSIZE не для красоты написано?
Изображение

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

Сообщение Хакер » 17.07.2006 (Пн) 20:41

А ещё потому что константы HWND_TOPMOST, SWP_NORESIZE, SQL_FRAMEDRAW не определены.
—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 » 17.07.2006 (Пн) 20:44

Хакер писал(а):SQL_FRAMEDRAW

ой.
Изображение

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

Сообщение Хакер » 17.07.2006 (Пн) 20:47

Хакер выполнил недопустимую операцию и будет закрыт.

Модуль: <нет данных>

_________

PS. Если всё таки объявить все константы, то всё нормально работает, и даже с 0, 0, 0, 0
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 17.07.2006 (Пн) 21:48

у меня в остальных прогах тоже всё работает, и всегда работало, а сейчас.... :shock:
а у вас работает???
так что мне делать?
может заново переписать????
только влом....
???
Изображение

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

Сообщение Хакер » 17.07.2006 (Пн) 21:51

вот блин. ты не понял?

вставь в начало кода формы это
Код: Выделить всё
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 17.07.2006 (Пн) 21:56

Поставь это:
SetWindowPos hwnd, -1, 0, 0, 0, 0, &H21

А вообще Option Explicit рулит.
Изображение

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 17.07.2006 (Пн) 22:33

Хакер
так в других-то проектах всё и так работает....

Хакер
keks-n
спасибо попробую....
Изображение

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

Сообщение Хакер » 17.07.2006 (Пн) 22:35

HotKitten
Ну, тот что оно там работает, может означать только одно, константы там объявлены :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dark_Diver
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 16.03.2006 (Чт) 22:57
Откуда: Donetsk, Ukraine

Сообщение Dark_Diver » 17.07.2006 (Пн) 22:53

Хакер писал(а):HotKitten
Ну, тот что оно там работает, может означать только одно, константы там объявлены :)


Скорее всего. В каком-нить используемом модуле. Или WIN32.TLB подключена.
Have a nice [D]OS[/2], TOSS, BIOS & CMOS!

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 18.07.2006 (Вт) 0:34

keks-n
во! твой код поставил-заработало....
но мне всё таки интересно, почему всю жизнь я пользовался тем кодом, и всё было без проблем....
Изображение

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

Сообщение Хакер » 18.07.2006 (Вт) 1:52

HotKitten, ты либо пользовался своим кодом, но объявлял константы, либо пользовался кодом кекса. Пойми, без объявления - HWND_TOPMOST - это просто переменная типа Variant. Её значение - 0.

И так со всеми.
—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 » 18.07.2006 (Вт) 6:32

Неинициализированный вариант принимает значение Empty (не 0).
Изображение

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

Сообщение Хакер » 18.07.2006 (Вт) 9:35

Да. Но я имел ввиду что там БайВал и значения пустышек из Empty преобразуются в 0.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 19.07.2006 (Ср) 1:55

Хакер писал(а):HotKitten, ты либо пользовался своим кодом, но объявлял константы, либо пользовался кодом кекса. Пойми, без объявления - HWND_TOPMOST - это просто переменная типа Variant. Её значение - 0.

И так со всеми.
ну я же объявлял HWND_TOPMOST....
Изображение

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 19.07.2006 (Ср) 1:56

..............
Изображение

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

Сообщение Хакер » 19.07.2006 (Ср) 6:37

HotKitten писал(а):..............


Сразу бы сказал. Это в корне меняет дело. Во вторых тогда нужно ...... перед тем как ...... потому что ........ не будет работать с неинициализированным ........
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 109

    TopList