내용 설명
Access로 GUI의 폼 프로그램을 제작하는 과정에서 완성된 프로그램의 Window 크기를 사용자가 최소화, 최대화 할 수 없게 하는 방법에 대해 정리 하였습니다.
[1] (1)의 최소화, 최대화 아이콘을 비표시로 변경하기

[2] (2)의 타이틀 영역을 마우스 오른쪽 버튼 클릭 했을 때 표시되는 서브 메뉴 중에서 (3)의 최소화, 최대화 서브 메뉴 표시를 비활성화 하기

[3] (4)의 아이콘을 클릭 했을 때 표시되는 서브 메뉴 중에서 (5)의 최소화, 최대화 메뉴 표시를 비활성화 하기

변경 방법
폼 화면을 실행 할 때 가장 먼저 실행되는 Form_Load 또는Form_Open 프로시저의 선두에 최소화, 최대화 아이콘 및 서브 메뉴를 비활성화 하는 코드를 작성합니다.

.accdb 또는 .mdb 확장자의 Access프로그램을 실행할 때 가장 먼저 열리는 폼을 지정하기 글은 다음을 참조하세요.
코딩 예(Access2013 64bit에서 동작 확인)
Option Compare Database Option Explicit Private Declare PtrSafe Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" _ (ByVal hWnd As LongPtr _ , ByVal nIndex As Long) As LongPtr Private Declare PtrSafe Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" _ (ByVal hWnd As LongPtr _ , ByVal nIndex As Long _ , ByVal dwNewLong As LongPtr) As LongPtr Private Const GWL_STYLE = -16 Private Const WS_MIN_WINDOW = &H20000 '최소화 버튼 Private Const WS_MAX_WINDOW = &H10000 '최대화 버튼 Public Sub DiableWindowResize() Dim lngAccesshWnd As LongPtr 'Application.hWndAccessApp <- Access의 윈도우 핸들취득 '현재값 취득 lngAccesshWnd = GetWindowLong(Application.hWndAccessApp, GWL_STYLE) '현재값에서 최소화 버튼 Disable lngAccesshWnd = lngAccesshWnd And Not WS_MIN_WINDOW '현재값에서 최대화 버튼 Disable lngAccesshWnd = lngAccesshWnd And Not WS_MAX_WINDOW '변경값 재 설정 SetWindowLong Application.hWndAccessApp, GWL_STYLE, lngAccesshWnd End Sub Private Sub Form_Open(Cancel As Integer) DiableWindowResize DoCmd.ShowToolbar "Ribbon", acToolbarNo End Sub
코딩 예(Access2013 32bit에서 동작 확인)
Option Compare Database Option Explicit Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" _ (ByVal hWnd As Long _ , ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" _ (ByVal hWnd As Long _ , ByVal nIndex As Long _ , ByVal dwNewLong As Long) As Long Private Const GWL_STYLE = -16 Private Const WS_MIN_WINDOW = &H20000 '최소화 버튼 Private Const WS_MAX_WINDOW = &H10000 '최대화 버튼 Public Sub DiableWindowResize() Dim lngAccesshWnd As LongPtr 'Application.hWndAccessApp <- Access의 윈도우 핸들취득 '현재값 취득 lngAccesshWnd = GetWindowLong(Application.hWndAccessApp, GWL_STYLE) '현재값에서 최소화 버튼 Disable lngAccesshWnd = lngAccesshWnd And Not WS_MIN_WINDOW '현재값에서 최대화 버튼 Disable lngAccesshWnd = lngAccesshWnd And Not WS_MAX_WINDOW '변경값 재 설정 SetWindowLong Application.hWndAccessApp, GWL_STYLE, lngAccesshWnd End Sub Private Sub Form_Open(Cancel As Integer) DiableWindowResize DoCmd.ShowToolbar "Ribbon", acToolbarNo End Sub
DoCmd.ShowToolbar "Ribbon", acToolbarNo에 대해서는 다음 글을 참조 하세요.
변경 후 실행 결과
[1] (1)의 최소화, 최대화 아이콘이 비표시로 변경 됨

[2] (2)의 타이틀 영역을 마우스 오른쪽 버튼 클릭 했을 때 표시되는 서브 메뉴 중에서 (3)의 최소화, 최대화 서브 메뉴 표시가 비활성화로 변경 됨

[3] (4)의 아이콘을 클릭 했을 때 표시되는 서브 메뉴 중에서 (5)의 최소화, 최대화 메뉴 표시가 비활성화로 변경 됨
