Die Kombination der ersten Beispiele. Hier der Quell-Code:

  • Der Fensterstil wird um 'Maximize'/'Minimize' und 'Resize' erweitert.
  • Der erweiterte Fensterstil wird um 'DialogFrame' reduziert. Der Effekt: Das Systemmenü wird sichtbar (existiert hat's auch vorher schon).
  • Ausserdem wird der Inhalt des Systemmenüs verändert.
  • Um die zusätzlichen Menüpunkte auszuführen braucht's noch eine WndProc; einen 'Event-Handler'.

Der sieht so aus:


 

Public Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'---------------------------------------------------------------------------------------
'user form's event handler

   Select Case uMsg
      Case WM_SYSCOMMAND         'menu selected
         Select Case wParam      'which menu item
            Case 1               'If About (ID = 1) was selected
               MsgBox "About SysMenu Demo", vbOKOnly Or vbInformation, strMakro & " " & strVersion
               WndProc = 0       'clear message
            'Case 2              'menu item 2
            
         End Select
            
      End Select
      ' Here, we forward all irrelevant messages on to the default message handler.
      WndProc = CallWindowProc(oldWndProc, hwnd, uMsg, wParam, lParam)
End Function

 

Das Ergebnis der Stil-/Menü-Änderungen:

Die WndProc verarbeitet den Klick auf 'About' und öffnet eine MessgeBox:

Es kann aber auch eine andere Programmroutine ausgeführt werden.

Zum Seitenanfang