본문 바로가기
컴퓨터&전자제품

비베 VB 비쥬얼베이직에서 폼 나가기 버튼 없애기

by 핑구야 날자 2009. 5. 21.
반응형

사용자가 정상적인 입력 및 기타의 행위를 마무리 하지 않고 나가기Button을 누르고 나가는 경우 Form Unload시 Check해야할 Event가 있을때 난감하다. 사용자가 다양하니까. 꼴밤을 먹일 수 도 없고

 BAS모듈에서 선행할 일

1.선언
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Private Const MF_BYPOSITION = &H400&

2.함수(BAS모듈에 생성)

Public Sub RemoveCancelMenuItem(frm As Form)
   Dim hSysMenu As Long
   hSysMenu = GetSystemMenu(frm.hwnd, 0)
   Call RemoveMenu(hSysMenu, 6, MF_BYPOSITION)
   Call RemoveMenu(hSysMenu, 5, MF_BYPOSITION)
End Sub


1.Form내에서 닫기버튼 없애기

   Form Load Event에서
   RemoveCancelMenuItem Me / Class.RemoveCancelMenuItem Me를 입력하면 닫기버튼이 없어진다.

2.다른 Form에서 제어할 경우(A Form에서 B Form의 닫기버튼 없애기)

     A Form에서   원하는 위치에
     RemoveCancelMenuItem B_Form
     A_Form.Show vbModal 를 입력하면 닫기버튼이 없어진다

3.기타사항

  별도의 나가기 버튼을 만들어 사용자가 Form에서 Unload시 입력값에 대한 Check하시면 됩니다.
  통상 기본적으로 Form에서 제공되는 나가기 버튼에서 Control하기 힘든 경우 이용하시면 편합니다.


반응형

댓글