#35. Microsoft Windows 정보 대화 상자 사용하기

실제로 Microsoft Windows 운영 체제를 구성하고 있는 컴포넌트 프로그램들의 정보 대화 상자를 살펴보면 공통적인 모습을 갖추고 프로그램의 이름과 제작자 정보들을 보여줍니다. 이러한 대화 상자는 어떻게 실행이 되어지게 되는 걸까요?


이 대화 상자 역시도, 글꼴 지정 대화 상자나 파일 작업 대화 상자와 같이 공용 대화 상자의 일종입니다. Windows 운영 체제의 버전은 물론 프로그램의 버전을 같이 표시해 줍니다. 하지만 한 가지 주의해야 할 점은, 이 대화 상자를 사용하여 표시되는 정보는 Microsoft가 소유권을 가지고 있는 것으로 표시가 됨에 유의해야 합니다.


스코프 연산자 (::)로 전역 API 함수들을 리스팅해보면 다음과 같은 꼴의 함수를 찾아보실 수 있습니다.


int ShellAbout(HWND hWnd, LPCTSTR szApp, LPCTSTR szOtherStuff, HICON hIcon);


각 파라메터들에 대해서 설명하겠습니다.



  • HWND hWnd : 모달 윈도우가 띄워질 부모 윈도우의 핸들을 받습니다.
  • LPCTSTR szApp : 제품의 이름이나 프로그램의 제목을 사용합니다.
  • LPCTSTR szOtherStuff : 부가 정보 및 덧말을 넣을 때 사용합니다.
  • HICON hIcon : 프로그램을 상징하는 아이콘의 핸들을 받습니다.

리턴값의 구분에 대해서 설명하겠습니다.



  • 만약 올바르게 창이 띄워지면 TRUE (Win32)를 리턴합니다.
  • 그렇지 않다면 FALSE (Win32)를 리턴합니다.

각 파라메터를 지정할 때에는 아래와 같이 지정하는 것이 일반적입니다. 참고로, 이 Chapter에서 사용될 프로젝트명이 CommonAbout이라고 가정하고 설명을 드리겠습니다.


* HWND hWnd


표준 MFC 프로젝트로 프로그램을 작성하였을 때에는 분명히 어플리케이션 클래스가 존재합니다. 여기서는 CCommonAboutApp 클래스이겠군요. 이 클래스의 멤버 변수 중에는 m_pMainWnd라는 변수가 있습니다. 이것은 어플리케이션을 연결하는 메인 프레임 윈도우에 대한 접근 변수입니다. 즉, 본 프로젝트에서의 CMainFrame 클래스에 연결시킨 것이죠. 또한 CMainFrame 클래스는 본 어플리케이션에서 가장 최상위 부모창에 해당하게 됩니다.


이 함수의 첫 번째 파라메터는 이 CMainFrame과 연결된 부모창의 핸들값을 요구하고 있습니다. 그렇다면 어떻게 이 핸들을 얻어낼 수 있을까요? CMainFrame 클래스의 멤버 함수 중에 GetSafeHwnd()라는 함수가 있습니다. 여러분은 이 함수의 리턴값을 첫 번째 파라메터에다가 직접 기입하시면 됩니다.


* LPCTSTR szApp, LPCTSTR szOtherStuff


원하는 대로 입력하시면 됩니다. 이 두개의 파라메터 모두 _T(“”) 와 같이 공백을 줄 수 있습니다.


* HICON hIcon


역시 API 함수 중에 LoadIcon이라는 전역 API 함수가 존재합니다. 리소스 ID를 입력받는 버전의 함수 정의에 맞게 파라메터를 준비하여 주시면 됩니다.

댓글 남기기