Creare una window con VC usando CreateWindow() ======================== Avete dei problemi per creare una window senza usare MFC ?.... Qui troverete ciņ che vi serve. Ricordatevi di includere i dovuti files..... #include #include #include ....ed altri a piacimento.... poi copiatevi questa montagna di roba..... long FAR PASCAL WndProc (HWND hWnd, WORD iMessage, WORD wParam, LONG lParam); int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { MSG Message; WNDCLASS WndClass; if (!hPrevInstance) { WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hbrBackground = GetStockObject (BLACK_BRUSH); WndClass.hCursor = LoadCursor (NULL,"file cursore (*.cur)"); WndClass.hIcon = LoadIcon (NULL,"file icona"); WndClass.hInstance = hInstance; WndClass.lpfnWndProc = (WNDPROC) WndProc; WndClass.lpszClassName = "STAR_WINDOW"; WndClass.lpszMenuName = NULL; WndClass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; RegisterClass (&WndClass); } hWnd = CreateWindow ("STAR_WINDOW", "Finestra generica", WS_OVERLAPPEDWINDOW|WS_MAXIMIZE, 0, 0, 640, 480, NULL, NULL, hInstance, NULL); if (!hWnd) { MessageBox (NULL, "Error hWnd", "Error", 0); return FALSE; } ShowWindow (hWnd, SW_SHOWNORMAL); UpdateWindow (hWnd); SetFocus(hWnd); ShowCursor(TRUE); while (GetMessage (&Message,0,0,0)) { TranslateMessage (&Message); DispatchMessage (&Message); } return Message.wParam; } void OnDestroy() { DestroyWindow (hWnd); PostQuitMessage(0); } long FAR PASCAL WndProc (HWND hWnd, WORD iMessage, WORD wParam, LONG lParam) { PAINTSTRUCT ps; switch (iMessage) { case WM_CREATE : { } break; case WM_PAINT : { HDC pDC = GetDC(hWnd); ReleaseDC(hWnd, pDC); pDC = BeginPaint (hWnd, &ps); EndPaint (hWnd, &ps); } break; case WM_TIMER : { } break; case WM_SIZE : { } break; case WM_DESTROY : { OnDestroy(); } break; } return (DefWindowProc (hWnd, iMessage, wParam, lParam) ); }; Se ci trovate qualche errore, ditemelo: fraa@iol.it N.B. RELATED BUGS Durante la compilazione ho riportato, alla chiusura della applicazione, un errore nel modulo .exe o all'indirizzo 0137:bff9a07c Se qualcuno ha la soluzione di questo bug me lo faccia sapere. 30/1/99 Francesco Angelini fraa@iol.it