본문 바로가기

무작정 따라해보기(정리, 문제풀기)/Win32API

22. WIN32API 프로그래밍 - 모달리스형 다이얼로그

728x90

 

'나우캠퍼스X아워즈팜'유튜브의 'Win32 API 7강. 다이얼로그 (2/4)'영상을 보고 정리한 내용입니다.

 

다이얼로그란 무엇인지, 모달형 다이얼로그를 어떻게 사용하는지 알고싶다면 이 링크를 클릭하세요
-> 모달형 다이얼로그

 

모달리스형 다이얼로그


모달리스형 다이얼로그 생성 함수

  • CreateDialog
  • HWND CreateDialog(
        HINSTANCE hInstance,
        LPCTSTR lpTemplate,
        HWND hWndParent,
        DLGPROC lpDialogFunc );
  • hInstance : 인스턴스
  • lpTemplate : 폼을 아이디 형태로 지정(리소스에서 컨트롤들을 올려놓을 수 있는 폼을 만든 후)
  • hWndParent : 이 다이얼로그를 실행시키는 윈도우의 핸들(메뉴에 의해 다이얼로그가 떴다면 메뉴를 가지고 있는 윈도우가 부모 윈도우)
  • lpDialogFunc : 다이얼로그의 프로시저. 이 프로시저로 윈도우에 들어오는 모든 메시지를 처리할 수 있도록 한다.
  • 폼 속성 중 Visible(보이게 할 것인지 아닌지)은 항상 False이며 CreateDialog는 자동으로 True로 바꾸어 주지 않기 때문에 따로 설정해 주어야 한다. (참고로 DialogBox는 자동으로 True를 설정해 줌)

 

모달리스형 다이얼로그 해제 함수

  • DestroyWindow
  • BOOL DestroyWindow(HWND hWnd);
  • hWnd는 해제할 모달리스형 다이얼로그의 윈도우 핸들
  • 모달형 다이얼로그의 해제 함수 EndDialog() 함수에서와 같이 WM_CLOSE 메시지가 발생되었을 때(창 닫기 버튼을 눌렀을 때) 호출을 해 줄 수 있다.
  • 또 이 윈도우 창의 핸들을 전역으로 사용할 수 있도록 하여서 상위의 윈도우 창에서 이 윈도우 창을 해제시켜서 종료시킬 수 있다. 

 

관련 코드입니다! -> 클릭

 

오류가 있다면 말해주시면 감사하겠습니다!