Пример #1
0
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR     lpCmdLine,
                   int       nCmdShow)
{
	MSG msg;
    HWND hWnd;

	MyRegisterClass(hInstance);

    DWORD style;
    if (FULLSCREEN)
        style = WS_EX_TOPMOST | WS_VISIBLE | WS_POPUP;
    else
        style = WS_OVERLAPPEDWINDOW;

    hWnd = CreateWindow(
       APPTITLE,
       APPTITLE,
       style,
       0,
       0, 
       SCREEN_WIDTH,     
       SCREEN_HEIGHT,     
       NULL,            
       NULL,         
       hInstance,       
       NULL);           

    if (!hWnd)
      return FALSE;

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
	
    Init_Direct3D(hWnd, SCREEN_WIDTH, SCREEN_HEIGHT, FULLSCREEN);
    
	Game_Init(hWnd);

    int done = 0;
	while (!done)
    {
        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) 
	    {
            if (msg.message == WM_QUIT)
                done = 1;

		    TranslateMessage(&msg);
		    DispatchMessage(&msg);
	    }
        else
		{
            Game_Run(hWnd);
		}
    }

	return msg.wParam;
}
Пример #2
0
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow)
{
	HICON IconSmall = LoadIcon(hInstance, "ICON16");
	HICON IconMedium = LoadIcon(hInstance, "ICON32");
	HICON IconLarge = LoadIcon(hInstance, "ICON48");
	WNDCLASSEX wc;
	wc.cbSize = sizeof(WNDCLASSEX);
	wc.style = CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc = (WNDPROC)WinProc;
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hInstance = hInstance;
	wc.hIcon = IconMedium;
	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wc.lpszMenuName = NULL;
	wc.lpszClassName = APPTITLE.c_str();
	wc.hIconSm = IconSmall;
	RegisterClassEx(&wc);
	DestroyIcon(IconSmall);
	DestroyIcon(IconMedium);
	DestroyIcon(IconLarge);
	HWND window = CreateWindow(APPTITLE.c_str(), APPTITLE.c_str(),
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT,
		SCREENW, SCREENH,
		NULL, NULL, hInstance, NULL);
	if (window == 0) return 0;
	ShowWindow(window, nCmdShow);
	UpdateWindow(window);
	if (!Game_Init(window)) return 0;
	MSG message = { NULL, 0, NULL, NULL, 0, { 0, 0 } };
	while (!gameover)
	{
		if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
		{
			TranslateMessage(&message);
			DispatchMessage(&message);
		}

		Game_Run(window);
	}
	Game_End();
	return message.wParam;
}