шлелчок вне формы

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

шлелчок вне формы

Сообщение Emzari » 06.06.2003 (Пт) 18:56

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

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 06.06.2003 (Пт) 19:04

С помощью того же GetAsyncKeyState, передав ей VK_LBUTTON или VK_RBUTTON.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.06.2003 (Сб) 8:52

Не нужно неправильно меню делать. Нужно делать меню правильно. С помощью CreateMenu, AppendMenu, ModifyMenu, TrackMenu и т.д...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 07.06.2003 (Сб) 10:58

GSerg писал(а):Не нужно неправильно меню делать. Нужно делать меню правильно. С помощью CreateMenu, AppendMenu, ModifyMenu, TrackMenu и т.д...

Может человек хочет сделать, что-то особенное.
To Emzari:
У меня есть собственная реализация, если нужно сообщи. Вышлю пример
Каждый warning мечтает стать error'om

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 07.06.2003 (Сб) 11:04

Попробуй API функциями:
SetCapture
ReleaseCapture

TRUST
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 192
Зарегистрирован: 22.08.2002 (Чт) 20:24
Откуда: Orel

Сообщение TRUST » 08.06.2003 (Вс) 23:59

Gemini писал(а):Попробуй API функциями:
SetCapture
ReleaseCapture


А что они делают, можно поинтересоваться в целях повышения образованности?
Кто юзал мой аккаунт и весь его выюзал?!!

Emzari
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 06.09.2002 (Пт) 9:08
Откуда: Georgia

Сообщение Emzari » 09.06.2003 (Пн) 18:37

To GSerg:
дело в том что Windows 98 не поддерживает грузинский язык а мне нужно грузинское меню.

To ZeroX:
болшое спасибо. буду рад примеру если не затруднит.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.06.2003 (Вт) 9:51

Эээ... Кхм... Ну так...
Юникод для чего придумали-то? Ведь не для того, чтобы в два раза больше места строки занимали :wink: . Если в виде наличествует грузинский язык, то что мешает создать меню на оном же? Просто нужно объявлять апишки, оканчивающиеся на W, а не на A, имхо...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4160
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 10.06.2003 (Вт) 10:05

А событие LostFocus не помогает?

John_mc
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 112
Зарегистрирован: 15.06.2002 (Сб) 6:18
Откуда: Russia, Новосибирск

Сообщение John_mc » 10.06.2003 (Вт) 10:20

2 ZeroX: Я тоже пытался сделать своё нестандартное меню, но это оказалось не так просто (сейчас затруднения с фокусом и клавишами)
Дак вот: Можно посмотреть на твоё меню? Буду благодарен если пришлёшь.
john_mc@pochtamt.ru

APMpc
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 15.07.2003 (Вт) 7:09
Откуда: Ukraine

Сообщение APMpc » 15.07.2003 (Вт) 8:02

Я сделал немного по-другому: Я в форму-меню вставил таймер, который проверяет какое окно активно. Да вот, собственно и код :arrow:
Код: Выделить всё
Private Sub tmrHide_Timer()
If GetActiveWindow <> Me.hwnd Then Unload Me
End Sub


т.е. с помощью API функции GetActiveWindow:
Код: Выделить всё
Declare Function GetActiveWindow Lib "user32" () As Long
:D


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

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

Сейчас этот форум просматривают: PetalBot, SemrushBot, Yandex-бот и гости: 12

    TopList  
cron