본문 바로가기
WINapi

CreateWindow함수, ShowWindow함수

by lolchangilsang 2022. 4. 1.

일단 이것들을 이해하시기 전에

https://lolchang0123.tistory.com/45

 

윈도우 클래스 정리

LPCSTR lpszClassName;​ #include typedef struct tagWNDCLASS { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground..

lolchang0123.tistory.com

여기를 먼저 가셔서 윈도우 클래스에 대해 이해를 하시고 보시는 것을 추천합니다

HWND CreateWindow(
    LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU hMenu,
    HINSTANCE hInstance,
    LPVOID lpParam);

lpClassName

 

문자열이고 윈도우 클래스명을 넣어주면 된다 (윈도우 클래스명->WNDCLASS.lpszClassName)

 

윈도우 클래스명을 넣어줄 때, RegisterClass 함수을 이용해 등록한 윈도우 클래스의 이름이어야한다

 

미리 정의된 시스템 클래스도 사용할 수 있다

 

시스템 클래스는 다른 포스팅을 찾아보길 바란다

 

lpWindowName

 

윈도우에 표시될 내용이다

 

윈도우일 경우 윈도우 타이틀 바이고, 버튼이면 버튼 텍스트이다 (<-다른건 찾아보자)

 

dwStyle

 

윈도우을 생성할 때 지정하는 스타일입니다.

 

여러가지를 중복할 수 있다

 

매크로의 종류는 따로 정리해서 올리도록 하겠다

 

x, y / nWidth, nHeight

 

솔직히 정수로 써주긴 좀 그렇다

 

그럴 때를 대비해서, 그냥

 

CW_USEDEFAULT <-이걸 써주면 된다, 알아서 정해준다

 

hWndParent

 

생성될 윈도우를 가질 부모의 핸들을 적어줘야하는데

 

팝업 윈도우일 경우 NULL을 적어주면 된다

 

hMenu

 

메뉴의 핸들 혹은 자식 윈도우의 컨트롤(ID)이다

 

자신을 부모 윈도우에서 구별하기 위해 넣어줘야 한다

 

팝업 윈도우 일때는 NULL을 넣어주면 된다

 

hInstance

 

윈도우를 만드는 주제의 핸들을 적어주는 곳임 (팝업 일때는 거의 WinMain으로 전달된 것을 사용)

 

lpParam

 

응용프로그램이 MDI 클라이언트 윈도우를 생성하면 CLIENTCREATESTRUCT 구조체를 지정해줘야 합니다.

MDI 클라이언트 윈도우가 MDI 자식 윈도우를 생성하면 MDICREATESTRUCT 구조체를 지정해야 합니다.

사용하지 않을 경우 NULL 값을 지정합니다.

 

솔직히 다 퍼왔는데 마지막 인자는 아직 잘 모르겠다 

 

예제

hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
		NULL, (HMENU)NULL, hInstance, NULL);

 

그 다음으로 설명할 ShowWindow함수는 밑과 가팅 생겨먹었다

 

CreateWindow함수로 만든 윈도우를 창으로 띄어주는 역활을 한다

 

hWnd에는 CreateWindow로 받은 핸들을 넣어주면 되고, nCmdShow는 WinMain의 마지막 인자로 오는 놈을 넣어주면

 

된다

BOOL ShowWindow(hWnd, nCmdShow);

예제

ShowWindow(hWnd, nCmdShow);
//정말로 바뀐게 없죠?

 

'WINapi' 카테고리의 다른 글

nCmdShow 매크로 정리  (0) 2022.04.01
윈도우 클래스 정리  (0) 2022.04.01
Win32Api)UINT style 매크로 정리  (0) 2022.04.01
WIN32API 정리  (0) 2022.03.31
WIN32 접두어 및 데이터형 일부 정리  (0) 2022.03.30