Fehler suche
-
Hi ich brauch Hilfe. Ich finden einfach nicht denn Fehler
#include <windows.h> #include <stdlib.h> #include <string.h> #include <tchar.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); const char szAppName[] = "Ein eigenes Fenster"; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInterstance, PSTR szCmdLine,int iCmdShow) { HWND hWnd; MSG msg; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.hIcon = LoadIcon(NULL,IDI_APPLICATION); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszClassName = szAppName; wc.lpszMenuName = NULL; RegisterClass(&wc); hWnd = CreateWindow(szAppName, "Titelleiste", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, /* X-Position auf dem Monitor */ CW_USEDEFAULT, /* Y-Position auf dem Monitor */ CW_USEDEFAULT, /* Fensterbreite */ CW_USEDEFAULT, /* Fensterhoehe */ NULL, NULL, hInstance, NULL); ShowWindow(hWnd, iCmdShow); UpdateWindow(hWnd); while (GetMessage(&msg, NULL, 0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
Ich bin für jede Hilfe dankbar
-
Hab keine Lust auf Fehlersuchspiele, wenn ich sogar nicht weiß, nach was ich suchen muss.
-
Und wo ist Sie Deine tolle Fensterprozedur, WndProc?
-
Nim diesen Code, der funktioniert:
#include <windows.h> LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM); char szWinName[] = "MyWin"; /* Name der Fensterklasse */ int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpszArgs, int nWinMode) { HWND hwnd; MSG msg; WNDCLASSEX wcl; /* Eine Fensterklasse definieren */ wcl.cbSize = sizeof(WNDCLASSEX); wcl.hInstance = hThisInst; /* Handle zu dieser Instanz */ wcl.lpszClassName = szWinName; /* Name der Fensterklasse */ wcl.lpfnWndProc = WindowFunc; /* Fenster Funktion */ wcl.style = 0; /* Standart Stil */ wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION); /* Standard Icon */ wcl.hIconSm = LoadIcon(NULL, IDI_WINLOGO); /* schmales icon */ wcl.hCursor = LoadCursor(NULL, IDC_ARROW); /* cursorstil */ wcl.lpszMenuName = NULL; /* kein Menü */ wcl.cbClsExtra = 0; /* Keine zusätzliche Klassen Speicher */ wcl.cbWndExtra = 0; /*Keine zusätzlicher Fenster Speicher */ wcl.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); /* Macht den Fenster Hintergrund weiß. */ /* Registriert die Fensterklassse. */ if(!RegisterClassEx(&wcl)) return 0; /* Die Fenster Klasse ist registriert, einen Fenster kann erstellt werden. */ hwnd = CreateWindow( szWinName, /* Name der Fensterklasse */ "Windows Test", /* Titel */ WS_OVERLAPPEDWINDOW, /* Fenster Stil - normal */ CW_USEDEFAULT, /* X Koordinate - Windows entscheidet */ CW_USEDEFAULT, /* Y Koordinate - Windows entscheidet */ CW_USEDEFAULT, /* Breite - Windows entscheidet */ CW_USEDEFAULT, /* Höhe - Windows entscheidet */ HWND_DESKTOP, /* Kein übergeordnetes Fenster */ NULL, /*Kein Menü */ hThisInst, /* handle auf diese Programminstanz*/ NULL /* Keine zusätzliche Argumente */ ); /* Das Fenster anzeigen. */ ShowWindow(hwnd, nWinMode); UpdateWindow(hwnd); /* Erstellen einer Nachricht Schleife. */ while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); /* Übersetzen Tastatur Nachrichten */ DispatchMessage(&msg); /* Kontrolle an Windows übergeben */ } return msg.wParam; } /* Diese Funktion wird von Windows aufgerufen und enthält Nachrichten von der Nachricht Warteschlange.*/ LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_DESTROY: /* Das Programm beenden */ PostQuitMessage(0); break; default: /* Alle nicht in dem obigen switch-Block festgestellten Nachrichen werden von Windows verarbeitet*/ return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }