VB初心者質問スレ Part7
■ このスレッドは過去ログ倉庫に格納されています
0798デフォルトの名無しさん
NGNGなんで、クローズボックス無効にしたいのか良くわからないんだけど...。
その手のボタン (=最大化、最小化、閉じる と システムメニュー) を全部無効
にするなら...
Option Explicit
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal uFlags As Long) As Long
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Const HWND_TOP As Long = 0
Private Const SWP_NOSIZE As Long = &H1
Private Const SWP_NOMOVE As Long = &H2
Private Const SWP_NOZORDER As Long = &H4
Private Const SWP_FRAMECHANGED As Long = &H20
Private Const SW_SHOW As Long = 5
Private Const GWL_STYLE As Long = -16
Private Const WS_SYSMENU As Long = &H80000
Private Sub Form_Load()
Dim WindowStyle As Long
Const ChangeBit As Long = WS_SYSMENU
Call SetWindowLong(Me.hWnd, GWL_STYLE,_
GetWindowLong(Me.hWnd, GWL_STYLE) And Not WS_SYSMENU)
Call SetWindowPos(Me.hWnd, HWND_TOP, 0, 0, 0, 0,_
SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOZORDER Or SWP_FRAMECHANGED)
Call ShowWindow(Me.hWnd, SW_SHOW)
End Sub
でできるよ。(お約束だけど、エラーチェックしてないからね。)
単に、終了させたくないだけなら >>797 の方が安全で確実。
■ このスレッドは過去ログ倉庫に格納されています