home *** CD-ROM | disk | FTP | other *** search
- VERSION 5.00
- Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG32.OCX"
- Begin VB.Form frmSysMenu
- Caption = "SG Window - System Menu Sample"
- ClientHeight = 3108
- ClientLeft = 3432
- ClientTop = 2448
- ClientWidth = 4464
- LinkTopic = "Form1"
- ScaleHeight = 3108
- ScaleWidth = 4464
- Begin MSComDlg.CommonDialog dlg
- Left = 540
- Top = 960
- _ExtentX = 847
- _ExtentY = 847
- _Version = 327681
- End
- Begin VB.Label Label1
- Caption = $"SysMenu.frx":0000
- Height = 1092
- Left = 60
- TabIndex = 0
- Top = 60
- Width = 4332
- End
- Attribute VB_Name = "frmSysMenu"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Option Explicit
- Private WithEvents mclsWindow As sgWindow.Window
- Attribute mclsWindow.VB_VarHelpID = -1
- ' System command Private Constants
- ' For a description of this commands take a look at the Win32 SDK
- Private Const SC_SIZE = &HF000&
- Private Const SC_MOVE = &HF010&
- Private Const SC_MINIMIZE = &HF020&
- Private Const SC_MAXIMIZE = &HF030&
- Private Const SC_NEXTWINDOW = &HF040&
- Private Const SC_PREVWINDOW = &HF050&
- Private Const SC_CLOSE = &HF060&
- Private Const SC_VSCROLL = &HF070&
- Private Const SC_HSCROLL = &HF080&
- Private Const SC_MOUSEMENU = &HF090&
- Private Const SC_KEYMENU = &HF100&
- Private Const SC_ARRANGE = &HF110&
- Private Const SC_RESTORE = &HF120&
- Private Const SC_TASKLIST = &HF130&
- Private Const SC_SCREENSAVE = &HF140&
- Private Const SC_HOTKEY = &HF150&
- Private Const SC_DEFAULT = &HF160&
- Private Const SC_MONITORPOWER = &HF170&
- Private Const SC_CONTEXTHELP = &HF180&
- Private Const SC_SEPARATOR = &HF00F&
- Private Const MF_STRING = &H0&
- Private Const MF_SYSMENU = &H2000&
- Private Const MF_SEPARATOR = &H800&
- Private Const SG_MNU_OPEN_FILE = &HFFF0&
- Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" _
- (ByVal hMenu As Long, ByVal wFlags As Long, _
- ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long
- Private Declare Function GetSystemMenu Lib "user32" _
- (ByVal hwnd As Long, ByVal bRevert As Long) As Long
- Private Sub Form_Load()
- ' Create SGWindow object and enable WM_SYSCOMMAND messages.
- Set mclsWindow = New sgWindow.Window
- mclsWindow.hwnd = Me.hwnd
- mclsWindow.Hooked = True
- mclsWindow.EnableMessage wm_SYSCOMMAND
- ' Insert menu item into the system menu
- Dim hMenu&
- hMenu = mclsWindow.SystemMenu ' GetSystemMenu(Me.hwnd, False)
- AppendMenu hMenu, MF_SEPARATOR, &HFFF0, ""
- AppendMenu hMenu, MF_STRING, SG_MNU_OPEN_FILE, "&Open picture"
- ' Initialize OpenFile dialog box
- dlg.Filter = "Pictures|*.bmp;*.gif;*.jpg;*.pcx;*.tif|All Files|*.*"
- dlg.Flags = cdlOFNFileMustExist + cdlOFNPathMustExist + cdlOFNExplorer
- End Sub
- Private Sub Form_QueryUnload(cancel As Integer, UnloadMode As Integer)
- Set mclsWindow = Nothing
- End Sub
- Private Sub mclsWindow_Message(ByVal msg As Long, _
- ByVal wParam As Long, ByVal lParam As Long, ByRef result As Long)
- On Error Resume Next
- wParam = (wParam And &HFFF0)
- Select Case wParam
- Case SG_MNU_OPEN_FILE
- dlg.Action = 1
- If Err <> 0 Then Exit Sub
- Me.Picture = LoadPicture(dlg.filename)
- result = 0
-
- Case Else
- result = mclsWindow.CallWindowProc(msg, wParam, lParam)
- End Select
- End Sub
-