본문 바로가기

전자 공학/MFC

[MFC 독학하기] 3. CreateWindow(), ShowWindow()

반응형

안녕하세요. 취업한 공대누나입니다.

지난 시간에 이어서 SDK 예제를 마저 보도록 하겠습니다.

가장 기초적인 것이니 만큼 차근차근 진행할 예정입니다.

 

1. CreateWindow 

윈도우는 CreateWindow() 함수에 의해서 메모리에 할당됩니다.

그리고 할당된 윈도우를 화면에 출력하기 위해서 ShowWindow()라는 함수를 호출하게 됩니다.

 

CreateWindow 함수의 원형은 아래와 같습니다.

HWND CreateWindow(

  LPCTSTR lpClassName,    // 윈도우 클래스 이름

  LPCTSTR lpWindowName, // 윈도우 이름

  DWORD dwStyle,              // 윈도우 스타일

  int x,                               // 윈도우 좌측 상단의 x 좌표

  int y,                               // 윈도우 좌측 상단의 y 좌표

  int nWidth,                       // 수평 방향 크기

  int nHeight,                      // 수직 방향 크긔
  HWND hWndParent,          // 부모 윈도우의 핸들

  HMENU hMenu,               // 메뉴 또는 자식 윈도우 식별자

  HINSTANCE hInstance,     // 윈도우를 생성한 인스턴스 핸들

  LPVOID lpParam               // CREATESTRUCT 구조체를 통해 전달되는 값

);

멤버들을 간단하게 설명해보도록 하겠습니다.

 

lpClassName :  윈도우의 이름입니다.

lpWindowName : 생성될 윈도우의 타이틀에 적혀질 이름입니다. 버튼, 콘솔, 체크박스 등의 어떠한 윈도우라도 이 값으로 이름을 설정합니다.

dwStyle : 생성되는 윈도우의 스타일을 지정합니다. 아래 스타일 말고도 여러 스타일이 있습니다.

            WS_BORDER : 얇은 선 테두리가 있는 창을 만듭니다.

            WS_CHILD : 자식 창을 만듭니다.

            WS_DLGFRAME : 대화 상자에서 사용하는 윈도우 프레임입니다.

            WS_HSCROLL : 수평 스크롤바

            WS_VSCROLL : 수직 스크롤바

            WS_CAPTION : 제목표시줄

            WS_MAXIMIZEBOX : 최대화 버튼

            WS_MINIMIZEVOX : 최소화 버튼

 

x : 생설될 윈도우의 수평 위치입니다. 

CW_USERDEFAULT일 경우에는 시스템이 기본 위치를 지정하며, y인자는 무시하게 됩니다. 

y : 생성될 윈도우의 세로 위치입니다.

nWideth : 생성될 윈도우의 폭을 말합니다. CW_USERDEFAULT로 설정될 경우 시스템이 폭과 높이를 결정하며, nHeight 값은 무시됩니다.

nHeight : 생성될 윈도우의 높이입니다.

hWndParent : 생성될 윈도우를 소유하는 윈도우이거나 부모 윈도우의 핸들입니다.

hMenu : 생성될 윈도우에 붙여질 메뉴 핸들입니다.

hInstance : 윈도우와 연결될 인스턴스 핸들입니다.

lpParam : 생성될 윈도우가 윈도우 생성을 마치고 WM_CREATE 메시지의 LPARAM을 통해 전달할 CREATESTRUCT 구조체애 대한 포인터입니다.

 

CreateWindow 함수의 린턴값은 윈도우 핸들이라고 부릅니다. 이는 운영체제 내부에서 윈도우를 유지하는데 필요한 데이터 구조체를 가리키는 일종이 포인터입니다.

2. ShowWindow()

 

Showwindow 함수는 지정된 윈도우의 표시 상태를 설정합니다.

 

함수의 원형은 아래와 같습니다.

BOOL ShowWindow(HWND hWnd, int nCmdShow);

hWND : 대상 윈도우 핸들

nCMDShow : 지정하고자 하는 보이기 상태입니다. 아래와 같은 매크로 상수들이 정의되어 있습니다.

                   이 값에 따라서 최소화, 최대화 혹은 보통 상태로 시작하게 됩니다.

                   SW_SHOW : 윈도우를 활성화하며 보인다.

                   SW_SHOWMAXIMIZED : 윈도우를 최대화된 상태로 활성화한다.

                   SW_SHOWMINIMIZED : 윈도우를 최소화한 상태로 활성화한다.

                   SW_HIDE : 윈도우를 숨긴다.

                   SW_SHOWNOACTIVATE : 최근 크기와 위치에 윈도우를 보이며 활성화 상태는 변경되지 않는다.

 

 

오늘까지는 윈도우를 생성하고 화면에 나타내는 부분까지 살펴보았습니다.

다음시간에는 본격적으로 메시지 처리하는 부분에 대해서 보도록 하겠습니다.

반응형