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 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
#include <windows.h> #define ID_PRESS 1000; // ID unseres Buttons HINSTANCE g_hInstance; LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) ; INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR CmdLine, INT nCmds) { WNDCLASSEX wc; MSG msg; unsigned uiWindowSize = 800; unsigned uiWindowHeight = 600; // Den Speicher von msg zurücksetzen ZeroMemory( &msg, sizeof(msg) ); // Den Speicher von msg zurücksetzen ZeroMemory( &wc, sizeof(WNDCLASSEX) ); // Fensterstruktur ausfüllen wc.hIcon = NULL; wc.hCursor = NULL; wc.hbrBackground = (HBRUSH)GetStockObject(DKGRAY_BRUSH); wc.lpfnWndProc = MsgProc; wc.hInstance = hInst; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.style = CS_HREDRAW | CS_VREDRAW; wc.hIconSm = NULL; wc.lpszClassName = "testwindow"; wc.lpszMenuName = NULL; wc.cbSize = sizeof(WNDCLASSEX); // Fensterklasse registrieren RegisterClassEx( &wc ); g_hInstance = hInst; // Fenster erstellen HWND hWnd = CreateWindow( "testwindow", "Das ist ein Testfenster", WS_OVERLAPPEDWINDOW, (int)((GetSystemMetrics(SM_CXVIRTUALSCREEN) / 2) - (unsigned)(g_iWindowSize / 2)), (int)((GetSystemMetrics(SM_CYVIRTUALSCREEN) / 2) - (unsigned)(g_iWindowHeight / 2)), g_iWindowSize, g_iWindowHeight, GetDesktopWindow(), NULL, wc.hInstance, NULL ); // Show the window ShowWindow( hWnd, SW_SHOWDEFAULT ); UpdateWindow( hWnd ); // Message Loop while( msg.message!=WM_QUIT ) { if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } } return 0; } //----------------------------------------------------------------------------- // Name: MsgProc() // Desc: The window's message handler //----------------------------------------------------------------------------- LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { // Lokale Variablen static HWND hButton; // Das HWND auf unseren Button switch( msg ) { case WM_CREATE: // Ein Steuerlemente, einen Button erstellen hButton = CreateWindow( "button", "Drücken Sie >hier<", WS_VISIBLE | WS_CHILD | BS_FLAT, 10, 10, 45, 15, hWnd, (HMENU)ID_PRESS, g_hInstance, NULL); break; case WM_DESTROY: PostQuitMessage(0); return 0; case WM_COMMAND: // Alle Nachrichten von unseren Steuerelementen kommen hier rein! switch(LOWORD(wParam)) { case ID_PRESS: // Der Button wurde gedrückt, Text verändern! SetWindowText(hButton, "Hallo Welt"); // eine Nachricht an einen anderes HWND // Bin mir beim MAKEWORD absolut unsicher, aber wParam // müsste ja ein 32 Bit Wert sein ??? oder SendMessage(0x001B0292, WM_COMMAND, MAKEWORD(100, 0), NULL); // Die 100 gibt die Nummer des Steuerelementes an, welche das bei dem anderen // Fenster ist weiss ich nicht! break; } break; } return DefWindowProc( hWnd, msg, wParam, lParam ); } |
C-/C++-Quelltext |
|
1 |
PostQuitMessage(handle dieses anderen Fensters); |
Werbeanzeige