투명 배경이있는 Windows 10 스타일의 전체 화면 모달 대화 상자를 복제하려고합니다. 제목 표시 줄을 제외하고는 모든 것이 완벽하게 작동합니다.MS Access 2016 - AcDialog로 열린 양식에서 제목 표시 줄 제거
나는 그것을 제거 할 수 없다. 또한 창 투명성을 위해 서브 클래 싱하는 다른 API를 비활성화했습니다. 테두리 스타일을 없음으로 설정하면 모든 제목 표시 줄 컨트롤이 숨겨집니다. 이 양식은을 팝업으로 설정하고
모달 나는이처럼 열려 :
DoCmd.OpenForm "Modal_Full_Screen", acNormal, , , , acDialog
이 내가 그것을 제거하려고 Form_Load 이벤트에서 만드는 API 호출은 다음과 같습니다
Dim lStyle As Long
SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) And Not WS_EX_DLGMODALFRAME
SetWindowPos Me.hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER
lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
lStyle = lStyle And Not (WS_BORDER Or WS_DLGFRAME Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX Or WS_THICKFRAME Or WS_CAPTION)
Call SetWindowLong(Me.hwnd, GWL_STYLE, lStyle)
SetWindowPos Me.hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER
확실히 처리를 중단하고 입력을 기다리고 싶습니다. 팝업 창이 닫히는 것을 기다리는 동안 루프를 놓는 트릭을 알고 있지만, DoEvents의 팬이 아니며, 빠른 머신에서 특히 스택을 크래킹하는 경향이 있습니다.
제목 표시 줄 이벤트를 사용하지 않도록 설정하거나 잡을 수있는 방법이 없으면 클릭하고 끌어 전체 화면에서 창을 복원합니다 (그러나 두 번 클릭하면 최대화되지는 않습니다).
나는 당신에게 케이프를 사야한다, 당신은 오늘 나의 영웅이다. GWL_Style을 찾는 첫 번째 GetWindowLong이 잘못된 인덱스 오류를 던지고있었습니다. GWL_Style이 Null 인 상수에 대한 선언문은 비공개입니다. 이제 완벽하게 작동합니다. 고맙습니다. 훌륭한 진단 교훈이었습니다. – Delecron
낚시를 할 사람을 가르치십시오. 다행 했어. – theB