본문 바로가기

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

23. WIN32API 프로그래밍 - 폼 기반의 윈도우 생성하기

728x90

 

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

 

폼 기반 윈도우 생성


폼 기반의 윈도우 프로그램은 단일 프로그램을 작성할 때 많이 사용합니다.

 

폼 기반의 윈도우는 WinMain()에서 DialogBox()를 호출하는 방식으로 생성하며 이때 부모 윈도우는 0이나 NULL로 설정해줍니다.


타이틀 바꾸기

  • 다이얼로그의 속성인 캡션을 설정(단점: 프로그램 실행 중에는 바꿀 수 없음)

  • SetWindowText() -- 타이틀을 언제든 바꿀 수 있음

 

폼 기반의 윈도우를 생성하는 코드입니다 -> 클릭


파일 열기/닫기


파일을 열거나 저장할 때 띄워지는 다이얼로그를 보통 공용 대화상자라고 합니다.

파일을 열거나 저장할 때 OPENFILENAME 구조체를 이용하여 파일의 정보를 설정하고, 또 파일 열기 또는 저장 다이얼로그로 얻어오는 정보들을 설정해줍니다.

위의 OPENFILENAME 구조체를 사용하기 위해서는 #include <commdlg.h>를 위에 선언해주어야 합니다.

 

파일 열기 다이얼로그 생성 함수

  • GetOpenFileName()
  • BOOL GetOpenFileName( LPOPENFILENAME lpofn );
  • lStructSize : OPENFILENAME구조체의 사이즈 --- sizeof(OPENFILENAME);
  • hwndOwner : 부모 윈도우 핸들
  • lpstrFilter : 파일형식 설명 --- 파일설명\0*.확장자\0 
  • nFilterIndex : 선택한 파일 인덱스 (1부터 시작함)
  • lpstrFileTitle : 파일명을 저장할 배열을 지정 --- nMaxFileTitle에 길이를 지정하면 되고 파일명을 저장할 배열은 static 변수 또는 전역 변수로 설정한다.
  • lpstrFile : 전체 경로를 저장할 배열을 지정 --- nMaxFile에 최대 길이를 지정하면 되고 전체 경로를 저장할 배열을 static 변수 또는 전역 변수로 설정한다.
  • lpstrTitle : 다이얼로그의 타이틀 문자열

 

파일 저장 다이얼로그 생성 함수

  • GetSaveFileName()
  • BOOL GetSaveFileName( LPOPENFILENAME lpofn );
  • lpstrFilter : 저장할 파일의 형식을 구분하는 역할
  • 그 외는 파일 열기 다이얼로그 생성 함수인 GetOpenFileName()함수와 같다.

 

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