Mercurial > sdl-ios-xcode
diff test/testnativew32.c @ 3060:4cf533f434d8
Implemented Win32 version of the native window test
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 09 Feb 2009 06:41:49 +0000 |
parents | 089a77aebb7d |
children | 6f3308d4b6cd |
line wrap: on
line diff
--- a/test/testnativew32.c Mon Feb 09 06:28:45 2009 +0000 +++ b/test/testnativew32.c Mon Feb 09 06:41:49 2009 +0000 @@ -12,17 +12,63 @@ DestroyWindowWin32 }; -static Display *dpy; +LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch(msg) + { + case WM_CLOSE: + DestroyWindow(hwnd); + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} static void * CreateWindowWin32(int w, int h) { - return NULL; + HWND hwnd; + WNDCLASS wc; + + wc.style = 0; + wc.lpfnWndProc = WndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = GetModuleHandle(NULL); + wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wc.lpszMenuName = NULL; + wc.lpszClassName = "SDL Test"; + + if(!RegisterClass(&wc)) + { + MessageBox(NULL, "Window Registration Failed!", "Error!", + MB_ICONEXCLAMATION | MB_OK); + return 0; + } + + hwnd = CreateWindow("SDL Test", "", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, w, h, NULL, NULL, GetModuleHandle(NULL), NULL); + if(hwnd == NULL) + { + MessageBox(NULL, "Window Creation Failed!", "Error!", + MB_ICONEXCLAMATION | MB_OK); + return 0; + } + + ShowWindow(hwnd, SW_SHOW); + + return hwnd; } static void DestroyWindowWin32(void *window) { + DestroyWindow((HWND)window); } #endif