// // 함수: InitInstance(HINSTANCE, int) // // 목적: 인스턴스 핸들을 저장하고 주 창을 만듭니다. // // 설명: // // 이 함수를 통해 인스턴스 핸들을 전역 변수에 저장하고 // 주 프로그램 창을 만든 다음 표시합니다. // BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { ghInstance = hInstance; DWORD dwStyle = WS_OVERLAPPED | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_BORDER; RECT rc = { 0, 0, FRAME_BUFFER_WIDTH, FRAME_BUFFER_HEIGHT }; AdjustWindowRect(&rc, dwStyle, FALSE); HWND hMainWnd = CreateWindow(szWindowClass, szTitle, dwStyle, CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL); if (!hMainWnd) return FALSE; gGameFramework.OnCreate(hInstance, hMainWnd); // Connect Server cout << "ip : "; cin >> ip; ServerConnect(); ::ShowWindow(hMainWnd, nCmdShow); ::UpdateWindow(hMainWnd); return TRUE; }
// // 함수: InitInstance(HINSTANCE, int) // // 목적: 인스턴스 핸들을 저장하고 주 창을 만듭니다. // // 설명: // // 이 함수를 통해 인스턴스 핸들을 전역 변수에 저장하고 // 주 프로그램 창을 만든 다음 표시합니다. // BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { // 윈도우 스타일 DWORD dwStyle = WS_OVERLAPPED // | WS_CAPTION // | WS_MINIMIZEBOX // | WS_SYSMENU // | WS_BORDER // ; // end // 인스턴스 핸들을 전역 변수에 저장 hInst = hInstance; // 인스턴스 핸들을 전역 변수에 저장합니다. // 데스크톱 윈도우 사이즈 RECT getWinSize; GetWindowRect(GetDesktopWindow(), &getWinSize); // 클라이언트 사이즈 RECT rc; rc.left = rc.top = 0; rc.right = CLIENT_WIDTH; rc.bottom = CLIENT_HEIGHT; AdjustWindowRect(&rc, dwStyle, FALSE); // 클라이언트 절대좌표(left, top) POINT ptClientWorld; ptClientWorld.x = (getWinSize.right - CLIENT_WIDTH) / 2; ptClientWorld.y = (getWinSize.bottom - CLIENT_HEIGHT) / 2; // 윈도우 생성 ghWndMain = CreateWindow( szWindowClass // 윈도우 클래스 명 , szTitle // 캡션 표시 문자열 , dwStyle // 윈도우 스타일 , ptClientWorld.x // 부모 윈도우 기반 윈도우 시작좌표 : x , ptClientWorld.y // 부모 윈도우 기반 윈도우 시작좌표 : y , rc.right // 윈도우 사이즈 : width , rc.bottom // 윈도우 사이즈 : height , NULL // 부모 윈도우. , NULL // 메뉴 핸들 , hInstance // 인스턴스 핸들 , NULL // 추가 파라메터 : NULL ); if (!gGameFramework.OnCreate(hInstance, ghWndMain)) return(FALSE); // 생성 실패시 프로그램 종료 // 확인 : WndProc의 default msg handler가 DefWindowProc 함수를 반환하는가? if (!ghWndMain) return FALSE; // 윈도우 표시 // 서버에 연결됐을 경우에만 표시한다. // ShowWindow(ghWndMain, nCmdShow); ::DragAcceptFiles(ghWndMain, TRUE); UpdateWindow(ghWndMain); CallServerIPInputBox(ptClientWorld); // 성공 반환 return TRUE; }