일단 이것들을 이해하시기 전에
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 |