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 |
#include <windows.h> #include <string.h> #include "resource.h" LPCSTR MainClassName = "Dialogfelder"; // Globale Variable // HINSTANCE hInst; //Für Auswertung von Check- und Radiobuttons BOOL bChecked1 = FALSE; BOOL bChecked2 = FALSE; BOOL bRadio1 = FALSE; BOOL bRadio2 = FALSE; BOOL bRadio3 = FALSE; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { WNDCLASSEX wc; MSG wmsg; HWND hWnd; wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_ICON)); wc.hCursor = LoadCursor(NULL, IDC_CROSS); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU); wc.lpszClassName = MainClassName; wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_ICON), IMAGE_ICON, 16, 16, 0); if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Windows Registrations Fehler", "Error!", MB_ICONEXCLAMATION | MB_OK) return 0; } hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, MainClassName, "Menü Beispiel", WS_OVERLAPPEDWINDOW|WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,NULL,NULL,hInstance, NULL); ShowWindow (wmsg, iCmdShow); UpdateWindow (wmsg); // Globaler Variable wird die Instanz zugeteilt // hInst=hInstance; if(hWnd == NULL) { if(MessageBox(NULL, "Fehler beim Erstellen des Fensters!", "Error!", MB_ICONEXCLAMATION | MB_OK) == IDOK); return 0; } while(GetMessage(&wmsg,NULL,0,0)) { TranslateMessage(&wmsg); DispatchMessage(&wmsg); } return wmsg.wParam; } LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { switch( uMsg ) { case WM_COMMAND : switch( LOWORD( wParam ) ) { //Wurde Menüelement "Radio & Checkbox" gewählt case ID_MENU_RADIO_CHECK : DialogBox( hInst, // <-Globale Variable wird hier benötigt MAKEINTRESOURCE(IDR_DIALOG), hWnd, (DLGPROC)CheckRadioProc ); |
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
typedef struct Globals_ { HINSTANCE hInst; BOOL bChecked1; BOOL bChecked2; BOOL bRadio1; BOOL bRadio2; BOOL bRadio3; } Globals; Globals* GetGlobalPtr() { static Globals globals; return &globals; } /* Und zugreifen kannst dann auf die Variablen von überall mit GetGlobalPtr()->hInst = hInstance; GetGlobalPtr()->bRadio1 = FALSE; usw. */ |
Quellcode |
|
1 |
wc.lpfnWndProc = WndProc; |
Zitat
DialogBox( hInst, // <-Globale Variable wird hier benötigt
Werbeanzeige