Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Nikonik
-
- Начинающий
-
-
- Сообщения: 16
- Зарегистрирован: 12.07.2006 (Ср) 10:55
Nikonik » 13.07.2006 (Чт) 8:41
В VB6 есть такое недоразумение как связь контекстного меню с типом формы.
Поясняю:
1 ) я хочу создать контекстное меню и знаю как это сделать
2) я хочу чтобы форма былa Border-style: None.
Но несморя на то что единствое меню созданое в menu editor невидимое все равно форма получается в окошке (что интересно - border-style остается None).
С какой-то стороны я конечно понимаю разработчиков -вдруг программисту захочется в ходе выполнения сделать это меню видимым, но с другой - я не знаю как мне сделать контекстное меню.
Конечно можно создать дополнительную форму и на ней сделать меню, но во-первых это не очень красиво, во-вторых приложение при вызове меню из другой формы подвисает приблизительно на полсекунды.
-
Antonariy
-
- Повелитель Internet Explorer
-
-
- Сообщения: 4824
- Зарегистрирован: 28.04.2005 (Чт) 14:33
- Откуда: Мимо проходил
-
Antonariy » 13.07.2006 (Чт) 9:15
Создай юзерконтрол с меню и положи его на форму.
Лучший способ понять что-то самому — объяснить это другому.
-
Matew
-
- Постоялец
-
-
- Сообщения: 894
- Зарегистрирован: 28.06.2004 (Пн) 17:44
- Откуда: Дальний Восток, г. Ха
-
Matew » 13.07.2006 (Чт) 9:36
..., а лучше возьми готовый с vbrussian
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару
-
Antonariy
-
- Повелитель Internet Explorer
-
-
- Сообщения: 4824
- Зарегистрирован: 28.04.2005 (Чт) 14:33
- Откуда: Мимо проходил
-
Antonariy » 13.07.2006 (Чт) 9:38
..., если хочешь лишней мороки.
Лучший способ понять что-то самому — объяснить это другому.
-
keks-n
-
- Доктор VB наук
-
-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 13.07.2006 (Чт) 10:32
Nikonik
Лечится так:
- Код: Выделить всё
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Sub Form_Load()
SetWindowLong hWnd, GWL_STYLE, ((GetWindowLong(hWnd, GWL_STYLE) Or &HC50000) Xor &HC50000)
SetWindowRgn hWnd, CreateRectRgn(0, 0, Me.Width / Screen.TwipsPerPixelX, Me.Height / Screen.TwipsPerPixelY), True
End Sub
-
Kovu
-
- Постоялец
-
-
- Сообщения: 924
- Зарегистрирован: 29.04.2005 (Пт) 17:38
Kovu » 13.07.2006 (Чт) 13:54
А ещё есть TrackPopupMenu.
Если всё делать своими ручками, они скоро отвалятся !
-
Nikonik
-
- Начинающий
-
-
- Сообщения: 16
- Зарегистрирован: 12.07.2006 (Ср) 10:55
Nikonik » 19.07.2006 (Ср) 11:11
keks-n, спасибо, довольно интересное решение заголовок формы просто отрезать
-
keks-n
-
- Доктор VB наук
-
-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 19.07.2006 (Ср) 11:20
Он насамом деле не отрезается... А изменяется стиль окна, который отвечает за его наличие. SetWindowRgn-служебная вещь... Нужна, чтобы данное изменение вступило в силу... Ты же его в событии Resize не вызываешь.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 24