ive just switched from xp 32bit to vista 64bit and installed visual studio express 2008 , the code compiles fine but fails to show the window , but the process is running in task manager , anyone know the problem
Code:#include "stdafx.h" #include <windows.h> #include "Dx.h" HWND g_hwnd; INT WINAPI WinMain(HINSTANCE hInstance,HINSTANCE,LPSTR,INT) { RegisterWindowClass(hInstance); RegisterWindow(hInstance); ShowWindow(g_hwnd,SW_SHOWDEFAULT); UpdateWindow(g_hwnd); INT result = StartMessageLoop(); return result; } LRESULT WINAPI WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) { switch(msg) { case WM_CREATE: return 0; case WM_DESTROY: PostQuitMessage(0); return 0; case WM_PAINT: ValidateRect(g_hwnd,NULL); return 0; } return DefWindowProc(hWnd,msg,wParam,lParam); } void RegisterWindowClass(HINSTANCE hInstance) { WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL,IDI_APPLICATION); wc.hCursor = (HCURSOR)LoadCursor(hInstance,IDC_ARROW); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = "WinApp"; wc.hIconSm = NULL; RegisterClassEx(&wc); } void RegisterWindow(HINSTANCE hInstance) { g_hwnd = CreateWindowEx(NULL,"WinApp","Basic Windows Application", WS_OVERLAPPEDWINDOW, 100, 100, 648, 514, GetDesktopWindow(), NULL, hInstance, NULL); } WPARAM StartMessageLoop() { MSG msg; while(1) { if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { if(msg.message == WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); } else { } } return msg.wParam; }



LinkBack URL
About LinkBacks



