home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / sgwnd10 / sysmenu.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1998-08-09  |  3.6 KB  |  99 lines

  1. VERSION 5.00
  2. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG32.OCX"
  3. Begin VB.Form frmSysMenu 
  4.    Caption         =   "SG Window - System Menu Sample"
  5.    ClientHeight    =   3108
  6.    ClientLeft      =   3432
  7.    ClientTop       =   2448
  8.    ClientWidth     =   4464
  9.    LinkTopic       =   "Form1"
  10.    ScaleHeight     =   3108
  11.    ScaleWidth      =   4464
  12.    Begin MSComDlg.CommonDialog dlg 
  13.       Left            =   540
  14.       Top             =   960
  15.       _ExtentX        =   847
  16.       _ExtentY        =   847
  17.       _Version        =   327681
  18.    End
  19.    Begin VB.Label Label1 
  20.       Caption         =   $"SysMenu.frx":0000
  21.       Height          =   1092
  22.       Left            =   60
  23.       TabIndex        =   0
  24.       Top             =   60
  25.       Width           =   4332
  26.    End
  27. Attribute VB_Name = "frmSysMenu"
  28. Attribute VB_GlobalNameSpace = False
  29. Attribute VB_Creatable = False
  30. Attribute VB_PredeclaredId = True
  31. Attribute VB_Exposed = False
  32. Option Explicit
  33. Private WithEvents mclsWindow As sgWindow.Window
  34. Attribute mclsWindow.VB_VarHelpID = -1
  35. ' System command Private Constants
  36. ' For a description of this commands take a look at the Win32 SDK
  37. Private Const SC_SIZE = &HF000&
  38. Private Const SC_MOVE = &HF010&
  39. Private Const SC_MINIMIZE = &HF020&
  40. Private Const SC_MAXIMIZE = &HF030&
  41. Private Const SC_NEXTWINDOW = &HF040&
  42. Private Const SC_PREVWINDOW = &HF050&
  43. Private Const SC_CLOSE = &HF060&
  44. Private Const SC_VSCROLL = &HF070&
  45. Private Const SC_HSCROLL = &HF080&
  46. Private Const SC_MOUSEMENU = &HF090&
  47. Private Const SC_KEYMENU = &HF100&
  48. Private Const SC_ARRANGE = &HF110&
  49. Private Const SC_RESTORE = &HF120&
  50. Private Const SC_TASKLIST = &HF130&
  51. Private Const SC_SCREENSAVE = &HF140&
  52. Private Const SC_HOTKEY = &HF150&
  53. Private Const SC_DEFAULT = &HF160&
  54. Private Const SC_MONITORPOWER = &HF170&
  55. Private Const SC_CONTEXTHELP = &HF180&
  56. Private Const SC_SEPARATOR = &HF00F&
  57. Private Const MF_STRING = &H0&
  58. Private Const MF_SYSMENU = &H2000&
  59. Private Const MF_SEPARATOR = &H800&
  60. Private Const SG_MNU_OPEN_FILE = &HFFF0&
  61. Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" _
  62.    (ByVal hMenu As Long, ByVal wFlags As Long, _
  63.    ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long
  64. Private Declare Function GetSystemMenu Lib "user32" _
  65.    (ByVal hwnd As Long, ByVal bRevert As Long) As Long
  66. Private Sub Form_Load()
  67.    ' Create SGWindow object and enable WM_SYSCOMMAND messages.
  68.    Set mclsWindow = New sgWindow.Window
  69.    mclsWindow.hwnd = Me.hwnd
  70.    mclsWindow.Hooked = True
  71.    mclsWindow.EnableMessage wm_SYSCOMMAND
  72.    ' Insert menu item into the system menu
  73.    Dim hMenu&
  74.    hMenu = mclsWindow.SystemMenu ' GetSystemMenu(Me.hwnd, False)
  75.    AppendMenu hMenu, MF_SEPARATOR, &HFFF0, ""
  76.    AppendMenu hMenu, MF_STRING, SG_MNU_OPEN_FILE, "&Open picture"
  77.    ' Initialize OpenFile dialog box
  78.    dlg.Filter = "Pictures|*.bmp;*.gif;*.jpg;*.pcx;*.tif|All Files|*.*"
  79.    dlg.Flags = cdlOFNFileMustExist + cdlOFNPathMustExist + cdlOFNExplorer
  80. End Sub
  81. Private Sub Form_QueryUnload(cancel As Integer, UnloadMode As Integer)
  82.       Set mclsWindow = Nothing
  83. End Sub
  84. Private Sub mclsWindow_Message(ByVal msg As Long, _
  85.    ByVal wParam As Long, ByVal lParam As Long, ByRef result As Long)
  86.    On Error Resume Next
  87.    wParam = (wParam And &HFFF0)
  88.    Select Case wParam
  89.       Case SG_MNU_OPEN_FILE
  90.          dlg.Action = 1
  91.          If Err <> 0 Then Exit Sub
  92.          Me.Picture = LoadPicture(dlg.filename)
  93.          result = 0
  94.          
  95.       Case Else
  96.          result = mclsWindow.CallWindowProc(msg, wParam, lParam)
  97.    End Select
  98. End Sub
  99.