일지

유니티 화면 비율 고정 처리...4

niamdank 2021. 9. 19. 22:59

WinAPI에서 드래그 종료를 체크할 방법에 대한 고민

드래그 종료를 감지하는 게 유니티에는 당연하게 존재하지 않으며 이것을 체크하기 위해 WinAPI를 사용해야 했다.

 

먼저 떠올린 건 콜백 이벤트.

WinAPI에는 다양한 이벤트가 존재하고 해당 이벤트를 전달받은 뒤 수행할 내용을 따로 작성할 수 있기 때문에 해당 내용을 찾아봤다.

 

c++ - WinAPI. Check if window resizing has been finished - Stack Overflow

 

WinAPI. Check if window resizing has been finished

I've got C++ application (used for share application's window via network). I need to update application's area on client side when it's size was changed on server side. For this purpose once in a ...

stackoverflow.com

 

위의 글에서 WM_ENTERSIZEMOVE 이벤트가 들어온 이후 화면 크기 변경이 시작되고 WM_EXITSIZEMOVE 가 들어온 이후 화면 크기 변경이 종료된다는 것을 알 수 있었다.

 

하지만 C#에서 윈도우 메시지 받는 방법을 알지 못하기에 일단 이 방법은 킵해두고 넘긴다.

 

두 번째로 고민할 방법은 WinAPI 함수를 Dll 임포트 한 뒤 해당 함수를 통해 마우스 커서 정보를 가져와 해당 정보로 사이즈 변경 완료 정보로 가공하는 방법이다.

 

일단 당장 시도할 수 있는 건 두 번째 방법이고 깔끔하게 처리 가능해 보이는 건 첫 번째 방법이다.

먼저 WinAPI 함수 로드해 처리해 보고 WinProc을 C#에서 사용하는 방법을 찾은 뒤 C# 코드에서 직접 윈도우 메시지를 받을 수 있도록 해 봐야겠다.