Управление системным меню

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

Управление системным меню

Сообщение VERITAS » 19.02.2005 (Сб) 11:55

У меня есть пример системного меню для программы с добавлением своих пунктов, но он работает только с формой с BorderStyle от 1 до 4

Меня интересует, как сделать чтобы он работал и с BorderStyle 0 - None :?: :?: У меня из опытов моих ничего не выходит, может есть у кого более мощный модуль?

Модуль
Код: Выделить всё
Option Explicit
Public Const GWL_WNDPROC = (-4)
Public Const WM_SYSCOMMAND = &H112
Public Const MF_SEPARATOR = &H800&
Public Const MF_CALLBACKS = &H8000000
Public Declare Function AppendMenuA Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Public Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Global p&

Public Function Handler&(ByVal h&, ByVal m&, ByVal w&, ByVal l&)
    If m = WM_SYSCOMMAND Then If w = &HF Then MsgBox "xxx-xxx-xxx", vbInformation
    ' &HF - идентификатор добавленой комманды, _
      он может быть любым...
    Handler = CallWindowProc(p, h, m, w, l)
End Function
No comments ...

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

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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 153

    TopList  
cron