728x90
300x250
[MFC] 윈도우 프로그래밍 기초 - 윈도우 객체 생성, 화면 띄우기

 

이번에는 윈도우 객체 생성 및 화면을 띄우는 방법에 대해서 소개하고자 합니다.

 


1. 윈도우 객체 생성

CreateWindow()의 원형 소개

 

 HWND CreateWindow(

       LPCTSTR lpClassName,

       LPCTSTR lpWindowName,

       DWORD dwStyle,

       int x, int y,

       int nWidth, int nHeight,

       HWND hWndParent,

       HMENU hMenu,

       HANDLE hInstance,

       PVOID lpParam);

 

 - lpClassName : 윈도우의 클래스를 지정하는 문자열이다.

 - lpWindowName : 윈도우의 제목 표시줄에 보여줄 문자열이다.

 - dwStyle : 윈도우의 스타일을 지정한다.

 - x, y : 윈도우의 좌표를 지정한다.

 - nWidth, nHeight : 윈도우의 폭과 높이를 장치 단위(픽셀)로 지정한다.

 - hWndParent : 부모 윈도우 또는 소유주 윈도우의 핸들을 지정한다.

 - hMenu : 겹쳐진(Overlapped) 윈도우나 팝업 윈도우의 경우 메뉴의 핸들을 지정한다.

 - hInstance : 윈도우를 생성하는 인스턴스 핸들을 지정한다.

 - lpParam : WM_CREATE 메시지의 인수 IParam으로 전달될 CREATESTRUCT 구조체의 포인터이다.

 

실제 코드 적용 )

 

 

 "이전 글 - http://yyman.tistory.com/entry/MFC-윈도우-프로그래밍-기초-윈도우-클래스-만들기"

  

 (중략)

 

 hWnd = CreateWindow(lpszClass, LPTSTR(_T("태스트")), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
  CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hInstance, NULL); 

 


2. 윈도우 객체 화면 띄우기

 

ShowWindow() 원형

 

 BOOL ShowWindow(HWND hWnd, int nCmdShow); 

 

 <nCmdShow 설정 값>

 

 설정 값

설명 

SW_FORCEMINIMIZE 

윈도우 2000 이후에만 쓸 수 있는 Flag.

-> 윈도우를 소유한 스레드(Thread)가 차단(Block)된 상태에서도 윈도우를 최소화시킨다. 

SW_HIDE 

윈도우를 숨긴다. 

SW_MAXIMIZE 

윈도우를 최대화 시킨다. 

 SW_MINIMIZE

윈도우를 최소화 시킨다. 

SW_RESTORE 

최대화나 최소화된 윈도우를 이전 상태로 복구한다. 

SW_SHOW 

윈도우를 활성화시켜서 화면에 띄운다. 

SW_SHOWDEFAULT 

STARTUPINFO 구조체가 지정하는 보기 상태로 만든다. 

SW_SHOWMAXIMIZED 

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

SW_SHOWMINIMIZED 

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

SW_SHOWMININOACTIVE 

윈도우를 최소화 상태로 화면에 띄우며 활성화 상태 그대로 변경되지 않는다.

SW_SHOWNA  

윈도우를 현재 상태로 화면에 띄우며 활성화 상태 그대로 변경되지 않는다.

 SW_SHOWNOACTIVATE

최근 크기와 위치에 윈도우를 띄우며 활성화 상태 그대로 변경되지 않는다. 

SW_SHOWNORMAL 

윈도우를 화면에 띄우며 활성화한다.

만약(If), 윈도우가 최소화되어 있거나 최대화 되어 있다면 윈도우를 원래 크기로 복구한다. 

 

 

 

 

 이전 코드 참고 - http://yyman.tistory.com/entry/MFC-윈도우-프로그래밍-기초-윈도우-클래스-만들기

 

 (중략)

 

 hWnd = CreateWindow(lpszClass, LPTSTR(_T("태스트")), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
  CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hInstance, NULL); 

 

 ShowWindow(hWnd, nCmdShow);

 

 

반응형

+ Recent posts