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 |