VB doesn’t display the Min and Max buttons in a form’s caption area when you specify BorderStyle Fixed Dialog. If you set the MinButton and MaxButton properties on the form to True, the Minimize and Maximize entries in the context menu are visible-but the buttons are still invisible! To fix this, add this code to a standard module:
Private Declare Function GetWindowLong Lib "user32" Alias _ "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As _ Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias _ "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As _ Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_STYLE = (-16)Private Const WS_MINIMIZEBOX = &H20000Private Const WS_MAXIMIZEBOX = &H10000Public Sub SetCaptionButtons(Frm As Form) Dim lRet As Long lRet = GetWindowLong(Frm.hWnd, GWL_STYLE) SetWindowLong Frm.hWnd, GWL_STYLE, lRet Or _ WS_MINIMIZEBOX * (Abs(Frm.MinButton)) Or _ WS_MAXIMIZEBOX * (Abs(Frm.MaxButton))End Sub
You must call the subroutine SetCaptionButtons from the Form_Load event, passing a reference to your form. This should work in VB3 and VB4 16 with the proper 16-bit API declarations (see “Remove Min/Max Buttons From MDI Form”).