Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
#include <Windows.h> // Prototyp Callback-Funktion LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); // WinMain -> Main Funktion int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpcmdline, int cmdshow) { // Variablen WNDCLASSEX windowclass; // Struktur Fenstereigenschaften HWND hWnd; // Handle Hautpfenster MSG message; // Nachricht HBRUSH hbrFarbe = CreateSolidBrush(RGB(212, 212, 212)); // Farbe const char szClassName[] = "Eigenes Fenster"; // Name des Fensters int nX = 0, nY = 0; // X & Y zur Speicherung der aktuellen Auflösung // Aussehen & Eigenschaften Fenster windowclass.cbSize = sizeof (WNDCLASSEX); // Größe Struktur speichern windowclass.hCursor = LoadIcon (NULL, IDC_ARROW); // Cursor windowclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); // Icon Fenster windowclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION); // Icon Taskleiste windowclass.hbrBackground = (HBRUSH)(hbrFarbe); // Farbe windowclass.style = CS_HREDRAW | CS_VREDRAW; // Bei Fensterbewegung neu zeichnen windowclass.lpszMenuName = NULL; // Kein Menü windowclass.cbClsExtra = NULL; // Keine Extras windowclass.cbWndExtra = NULL; // Keine Extras windowclass.lpfnWndProc = WindowProc; // --> Zeiger auf Callback-Funktion windowclass.hInstance = hInstance; // --> Instanz speichern windowclass.lpszClassName = (LPCWSTR)(szClassName); // --> Klassennamen angeben if (!RegisterClassEx (&windowclass)); // ==> Fensterklasse registireren, testen ob alles geklappt hat return (0); // Fenster erzeugen nX = GetSystemMetrics (SM_CXSCREEN); // aktuelle Auflösung: X auslesen nY = GetSystemMetrics (SM_CYSCREEN); // aktuelle Auflösung: Y auslesen hWnd = CreateWindowEx (NULL, (LPCWSTR)(szClassName), TEXT("Eigenes Fenster"), // Fensternamen angeben WS_OVERLAPPEDWINDOW | WS_VISIBLE, // Fenstermerkmale CW_USEDEFAULT, 0, (nX/2), (nY/2), // Zeichnungsort und Größe NULL, NULL, hInstance, NULL); // - // Testen ob alles glatt ging if (hWnd == NULL) return (0); // Nachrichtensystem while (GetMessage (&message, NULL, 0, 0)) { TranslateMessage(&message); DispatchMessage(&message); } // Programm beenden return (int)(message.wParam); } // WinMain // Callback-Funktion -> wertet Nachrichten aus LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { // Fenster schließen (X-Button oder Alt-F4) case WM_DESTROY: PostQuitMessage(0); return (0); break; // Taste oder Button ausgewählt? case WM_KEYDOWN: case WM_COMMAND: switch(wParam) { case VK_ESCAPE: PostQuitMessage(0); return (0); } break; // Keine Anweisung? default: return (DefWindowProc (hWnd, message, wParam, lParam)); } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »NukeNoob« (11.11.2012, 23:22) aus folgendem Grund: Problem gelöst und [Erledigt].
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
ZeroMemory(&message, sizeof(MSG)); // Nachrichtensystem while (GetMessage (&message, NULL, 0, 0)) { TranslateMessage(&message); DispatchMessage(&message); } |
C-/C++-Quelltext |
|
1 2 |
if (!RegisterClassEx (&windowclass)); // ==> Fensterklasse registireren, testen ob alles geklappt hat return (0); |
C-/C++-Quelltext |
|
1 2 |
if (!RegisterClassEx (&windowclass)) // ==> Fensterklasse registireren, testen ob alles geklappt hat return (0); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 |
hWnd = CreateWindowEx (NULL, (LPCWSTR)(szClassName), TEXT("Eigenes Fenster"), // Fensternamen angeben WS_OVERLAPPEDWINDOW | WS_VISIBLE, // Fenstermerkmale CW_USEDEFAULT, 0, (nX/2), (nY/2), // Zeichnungsort und Größe NULL, NULL, hInstance, NULL); // - // Testen ob alles glatt ging if (hWnd == NULL) return (0); // Fenster zeigen ShowWindow(hWnd, cmdshow); |
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »NukeNoob« (11.11.2012, 23:22) aus folgendem Grund: Problem gelöst.
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
C-/C++-Quelltext |
|
1 |
(LPCWSTR)(szClassName) |
C-/C++-Quelltext |
|
1 |
const TCHAR szClassName[] = TEXT("Eigenes Fenster"); // Name des Fensters |
Werbeanzeige