Контекстное меню (КМ)

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

Re: Контекстное меню (КМ)

Сообщение arthur2 » 13.05.2009 (Ср) 20:16

iGrok писал(а):Сабклассинг - это про обработку WM_COMMAND от меню, созданного при помощи CreatePopupMenu.
Я стандартными вб-меню ВООБЩЕ никогда не пользуюсь. Прежде всего потому, что они не позволяют использовать уникод. Но только из-за меню прикручивать субклассинг, что бы ловить WM_CONTEXTMENU - смысла не вижу. Другое дело - если субклассинг уже прикручен для какой-нибудь надобности :)
Артур
 
   

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Контекстное меню (КМ)

Сообщение iGrok » 13.05.2009 (Ср) 20:37

Alec писал(а):
iGrok писал(а):Почему - потому, что окно получает стили WS_CAPTION | WS_SYSMENU и WS_EX_WINDOWEDGE.

А кто мешает эти стили убрать при загрузке?
PS. WS_EX_WINDOWEDGE у меня не получает.

Никто не мешает. Попробуй, и посмотри, что получится. Картинка, честно говоря, не очень.
label:
cli
jmp label

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Контекстное меню (КМ)

Сообщение Alec » 13.05.2009 (Ср) 20:56

iGrok писал(а):Картинка, честно говоря, не очень.

Если ты про "остатки" заголовка, то, впринципе их можно победить.
Наверное, коряво, но все же:
Код: Выделить всё
Private Sub Form_Load()
  Dim WS As Long
  WindowState = 1
  WS = GetWindowLong(hwnd, GWL_STYLE)
  WS = WS And Not (WS_CAPTION Or WS_SYSMENU)
  Call SetWindowLong(hwnd, GWL_STYLE, WS)
  Visible = True
  WindowState = 0
End Sub
Иногда лучше вовремя остановиться...
И начать заново!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Контекстное меню (КМ)

Сообщение iGrok » 13.05.2009 (Ср) 21:05

Alec писал(а):Наверное, коряво, но все же:...

Забавно. Коряво, но работает. :)
Интересно, как будет "прямо".
label:
cli
jmp label

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Контекстное меню (КМ)

Сообщение arthur2 » 13.05.2009 (Ср) 21:22

iGrok писал(а):Забавно. Коряво, но работает. :)
Интересно, как будет "прямо".

Код: Выделить всё
Private Sub Form_Initialize()
  Dim WS As Long
'  WindowState = 1
  WS = GetWindowLong(hWnd, GWL_STYLE)
  WS = WS And Not (WS_CAPTION Or WS_SYSMENU)
  Call SetWindowLong(hWnd, GWL_STYLE, WS)
'  Visible = True
'  WindowState = 0
End Sub
Артур
 
   

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Контекстное меню (КМ)

Сообщение iGrok » 13.05.2009 (Ср) 21:48

arthur2 писал(а):Form_Initialize()

Блин. А ведь точно. )
label:
cli
jmp label

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Контекстное меню (КМ)

Сообщение Alec » 13.05.2009 (Ср) 22:02

iGrok писал(а):
arthur2 писал(а):Form_Initialize()

Блин. А ведь точно. )

Блин. А у меня это не работает - пытается рисовать заголовок...
Иногда лучше вовремя остановиться...
И начать заново!

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Контекстное меню (КМ)

Сообщение arvitaly » 13.05.2009 (Ср) 22:28

Всем, если уж на то дело пошло, стандартное меню вообще не очень удобный инструмент, приложив не так много усилий создается свое с любым функционалом. Я делал его в свое время для создания выборки группы (5 вложенных подгрупп) в виде меню из базы. Но оно годилось и для обычного. Никаких заморочек и просто летало. Это я к тому, что лично мне гораздо проще создать свое чем переделывать чужое

Пред.

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

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

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

    TopList  
cron