Hacking Arts
WinMain - 3.윈도우 객체 화면에 띄우기 본문
-윈도우 클래스를 생성하고 윈도우 객체를 생성하는 것까지 했다. 그다음은 윈도우 객체 화면에 띄우기 이다.
윈도우 존재를 띄어주는 함수로 ShowWindow를 사용한다.
-ShowWindow()
[그림 1 ShowWindow 정의]
첫번째 인수는 hWnd 화면에 보여줄 윈도우 객체의 핸들이고, 두번째 인수 nCmdShow는 화면에 보여줄 윈도우 형태이다.
설정 값 |
설명 |
SW_FORCEMINIMIZE |
2000 이후에만 쓸 수 있는 플래그로 윈도우를 소유한 스레드가 차단된 상태에서도 윈도우를 최소화 시킨다. |
SW_HIDE |
윈도우를 숨긴다. |
SW_MAXIMIZE |
윈도우를 최대화 시킨다. |
SW_MINIMIZE |
윈도우를 최소화 시킨다. |
SW_RESTORE |
최대화나 최소화된 윈도우를 이전 상태로 복구한다. |
SW_SHOW |
윈도우를 활성화시켜서 화면에 띄운다. |
SW_SHOWDEFAULT |
STARTUPINFO 구조체가 지정하는 보기 상태로 만든다. |
SW_SHOWMAXIMIZED |
윈도우를 최대화된 상태로 활성화 한다. |
SW_SHOWMINIMIZED |
윈도우를 최소화한 상태로 활성화 한다. |
SW_SHOWMINNOACTIVE |
윈도우를 최소화 상태로 화면에 띄우며 활성화 상태 그대로 변경되지 않는다. |
SW_SHOWNA |
윈도우를 현재 상태로 화면에 띄우며 활성화 상태 그대로 변경되지 않는다. |
SW_SHOWNOACTIVATE |
최근 크기와 위치에 윈도우를 띄우며 활성화 상태 그대로 변경되지 않는다. |
SW_SHOWNORMAL |
윈도우를 화면에 띄우며 활성화한다. 만약 윈도우가 최소화되어 있거나 최대화되어 있다면 윈도우를 원래 크기로 복구한다. |
[그림2 이런식으로 설정해서 사용하면 된다]
LPWSTR lpszClass = L"ApiBase";
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
WndClass.cbClsExtra = 0; //클래스 여분 바이트수
WndClass.cbWndExtra = 0; //윈도우 여분 바이트수
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //윈도우의 배경색
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); //프로그램에서 사용할 커서
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); //프로그램에서 사용할 아이콘
WndClass.hInstance = hInstance; //프로그램의 인스턴스 핸들
WndClass.lpfnWndProc = (WNDPROC)WndProc; //프로시져 함수명
WndClass.lpszClassName = lpszClass; //구조체로 만들어질 클래스명
WndClass.lpszMenuName = NULL; //프로그램에서 사용할 메뉴
WndClass.style = CS_HREDRAW | CS_VREDRAW; //윈도우 스타일
RegisterClass(&WndClass);
hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hInstance, NULL);
ShowWindow(hWnd, nCmdShow);
}
-참고 서적'Programing > API Programing' 카테고리의 다른 글
| WndProc - 메시지 처리하기 (0) | 2014.09.20 |
|---|---|
| WinMain - 4.메시지 루프 돌리기 (0) | 2014.09.20 |
| WinMain - 2.윈도우 객체 생성하기 (0) | 2014.09.19 |
| WinMain - 1.윈도우 클래스 만들기 (0) | 2014.09.19 |
| WinMain() 과 WndProc() (0) | 2014.09.19 |