Visual Basic Tips


フォーム・最小化最大化ボタンの消去(API)


通常のフォームであればフォームのMinButton,MaxButtonプロパティをFalseにしてしまえば最小化・最大化ボタンは消去されますが、MDIフォームでは先に上げたプロパティは存在しないので消去できません、この場合APIで消去するこの方法が有効です。(通常のフォームにも有効です。)
グニグニさん貴重な情報ありがとうございました。(情報提供日2000/7/21)

※システムメニューの「最小化」「最大化」まで無効化したい場合は「システムメニューの削除(API)」を参照して下さい。

Private Sub Form_Load()
  
Dim lngStyle As Long

  '最小化ボタンの消去
  lngStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
  
Call SetWindowLong(Me.hwnd, GWL_STYLE, lngStyle And Not WS_MINIMIZEBOX)

  '最大化ボタンの消去
  lngStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
  
Call SetWindowLong(Me.hwnd, GWL_STYLE, lngStyle And Not WS_MAXIMIZEBOX)
End Sub

'-------------------------------------------------------
'
'-------------------------------------------------------
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex 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 Const
GWL_STYLE = (-16)
Public Const
WS_MAXIMIZEBOX = &H10000
Public Const
WS_MINIMIZEBOX = &H20000


DownLoad vbtips105.lzh 2KB (VB6.0)