PopUpMenu for Text Control

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

PopUpMenu for Text Control

Сообщение Чудик » 18.02.2005 (Пт) 15:05

Почему при PopUpMenu в MouseDown на TextBox высвечивается не пользовательское меню, а системное? Лишь при двойном клике высвечивается именно пользователькое меню.
Век живи - век учись!
www.detal-plast.narod.ru

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 18.02.2005 (Пт) 17:11

Чудик писал(а):Почему при PopUpMenu в MouseDown на TextBox высвечивается не пользовательское меню, а системное? Лишь при двойном клике высвечивается именно пользователькое меню.
http://bbs.vbstreets.ru/viewtopic.php?t=4841&highlight=popupmenu
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 18.02.2005 (Пт) 19:29

Хитро! Спасибо!
Век живи - век учись!
www.detal-plast.narod.ru

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 16.06.2005 (Чт) 11:45

Не получается избавиться от родного подконтекстного меню TextBox, предложенный вариант не работает, так как событие на появление родного меню наступает раньше, чем событие MouseDown или MouseUp.
Как обойти ситуацию, не знаю.
Век живи - век учись!
www.detal-plast.narod.ru

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 16.06.2005 (Чт) 12:19

все нормально работает:

Код: Выделить всё
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 2 Then
    Me.Text1.Enabled = False
    Me.PopupMenu Me.mnuPop, 2
    Me.Text1.Enabled = True
End If

End Sub


проверяй внимательно :evil:

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 16.06.2005 (Чт) 12:30

Угу, работает. Я без двойки делал (я про флаг).
Век живи - век учись!
www.detal-plast.narod.ru

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 23.06.2005 (Чт) 0:34

Ruslan Demidow писал(а):
Чудик писал(а):Почему при PopUpMenu в MouseDown на TextBox высвечивается не пользовательское меню, а системное? Лишь при двойном клике высвечивается именно пользователькое меню.
http://bbs.vbstreets.ru/viewtopic.php?t=4841&highlight=popupmenu


А можно ли программным способом вызвать стандартное контекстное меню какого-либо контрола (того же текстбокса)?

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

Сообщение tyomitch » 25.06.2005 (Сб) 19:09

SAS писал(а):А можно ли программным способом вызвать стандартное контекстное меню какого-либо контрола (того же текстбокса)?

Через TrackPopupMenu - нет, по крайней мере у текстбокса: его меню создаётся каждый раз при клике, а не хранится где-то.
Максимум что можно - послать контролу WM_CONTEXTMENU.
Изображение


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

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

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

    TopList