//
//   함수: 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;
}
Esempio n. 2
0
//
//   함수: 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;
}