Блокировка пунктов меню

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Блокировка пунктов меню

Сообщение Gigahard » 01.04.2003 (Вт) 14:40

Когда в окне ввода текста жмешь правой кнопкой мыши, то всплывает меню редактирования. Так вот такой вопрос: Можно ли вообще удалить из меню пункты копировать, вырезать, вставить. А если нельзя, то как их заблокировать?

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

Сообщение RayShade » 01.04.2003 (Вт) 15:13

Ну во первых есть целая пачка API функций по работе с меню.

А потом опять же можно обрабатывать сообщения от мыши и блокировать появление меню ;)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.04.2003 (Вт) 18:45

ИМХО такой пример был на каком-то сайте... Посмотрите на http://www.vbnet.ru.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 02.04.2003 (Ср) 0:21

RayShade писал(а):Ну во первых есть целая пачка API функций по работе с меню.
А потом опять же можно обрабатывать сообщения от мыши и блокировать появление меню ;)

Ну то что такие функции есть я и сам подозревал :lol: . Ну а насчет обработчика событий мыши, че то не блокируется меню то. И вообще хочется не абстрактное высказывание, дескать "есть целая пачка", а конкретный пример.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.04.2003 (Ср) 6:12

Ну, можно вот так...:
Данный пример покажет, как можно заблокировать стандартное контекстное меню элемента TextBox. Расположите на форме TextBox, а также создайте невидимое меню mnuText и как минимум одно подменю. Запустите проект, нажмите правой клавишей мыши на TextBox'е...

Private Declare Function LockWindowUpdate Lib "User32" (ByVal hwndLock As Long) As Long

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
LockWindowUpdate Text1.hWnd
Text1.Enabled = False
DoEvents
PopupMenu mnuText
Text1.Enabled = True
LockWindowUpdate 0&
End If
End Sub

:roll: Могли бы и сами найти...

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 02.04.2003 (Ср) 14:45

Amed писал(а): :roll: Могли бы и сами найти...

Ну не нашел вот :) Форум то для этого и существует собственно :)


А как насчет дисейбла, отдельных пунктов меню?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.04.2003 (Ср) 19:07

Amed писал(а):

Могли бы и сами найти...

Ну я же сайт сказал даже 8)

А с блоком отдельных можно предложить вот что:

Создаёте своё точно такое же меню, и уже в нём пишете обработку событий...
P.S. используется объект Clipboard (clipboard.settext и т.д.)

То есть, сначала блокируете основное меню, а потом показываете своё (popupmenu MyMenu)...

Надеюсь, я понятно объяснил? 8)


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

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

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

    TopList