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

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

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

사용자가 정상적인 입력 및 기타의 행위를 마무리 하지 않고 나가기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하기 힘든 경우 이용하시면 편합니다.


728x90
반응형

댓글11

  • 알 수 없는 사용자 2009.05.21 16:46

    오...어렵네요 +__+;; 제가 이런데 약해서리;;
    답글

  • 상오기™ 2009.05.21 17:46 신고

    앗~ 비베다 ^^
    전에 야후 영어 사전을 이용한 단어장 만들었다가 이것들이 인코딩 방식을 바꿔 버리는 바람에(UTF-8 이었던가) 지금까지 버려두고 있는 프로그램이 생각 나네요
    UTF-8 읽어오는걸 처리 못해서 버려둠...ㅠ.ㅠ
    답글

  • 핑구야 날자 2009.05.21 17:57 신고

    홧팅..
    답글

  • 알 수 없는 사용자 2009.05.21 19:08

    비베..고등학교때 보고 오랜만에 보는..;
    답글

  • 뷰티가이드 2009.05.21 20:09

    앗 ㅋㅋㅋ X가 사실 가출버튼이었군요 ㅋㅋㅋ
    답글

  • 질문자 2014.06.14 19:24

    굉장히 찾던 코드 입니다. 근데 'hwnd'은(는) 'System.Windows.Forms.Form'의 멤버가 아닙니다. 라고 오류가뜨는데 이건 어떻게 해결해야 될까요?
    답글

    • 핑구야 날자 2014.06.14 21:17 신고

      선언부를 확인해보세요, 멤버가 아니라는 것은 사용할 수 없는 상태라는 말이고 사용할 수 없는 것은 선언에 문제가 있기 때문인 것 같아요

  • 질문자 2014.06.15 20:24

    답변 감사합니다. bas 모듈을 써본적이 없어서 어렵네요.
    프로젝트->새항목추가->모듈->a.bas 프로젝트에 추가를 했고 Module a와 End Module 사이에 빨간색 상자의 코드들을 모두 입력했는데 그래도 역시 문제가 해결이안되네요. 선언부분만 Module 바깥으로 빼면 '네임스페이스에서는 문을 사용할수 없습니다'라고 나오네요
    bas파일에 선언부분과 함수부분을 어떻게 나누면 좋을까요?
    답글