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
Zitat von »"koschka"«
Du solltest immer Methoden, von denen du willst, dass die erbenden Klasse diese unbedingt implementieren müssen (kann auch leer sein) immer abstrakt machen. (Bei OnClick und OnDestroy würd ich das machen)
Bei Java ist das besser gelöst mit abtract bool foo();, in Cpp sieht das so aus: virtual bool foo() = 0; Ist nicht sonderlich schön, funzt aber
Zitat von »"koschka"«
Das mit dem erben ist im ürbiegen - wenn ich so mal drüber nachdenke ne ganz akzeptable Idee .
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 |
class CWindow { protected: ::MSG msg; ::WNDCLASSW wndclass; HWND__* hwnd; HDC__* hdc; __w64 long __stdcall WndProc (HWND__* hwnd, unsigned int message, __w64 unsigned int wParam, __w64 long lParam); public: bool create(std::basic_string<wchar_t> name, HINSTANCE__* hInstance, HINSTANCE__* hPrevInstance, char *szCmdLine, int iCmdShow ); }; bool CWindow::create(std::basic_string<wchar_t> name, HINSTANCE__* hInstance, HINSTANCE__* hPrevInstance, char *szCmdLine, int iCmdShow ) { ::ZeroMemory(&hwnd, sizeof(HWND__*)); ::ZeroMemory(&msg, sizeof(MSG)); ::ZeroMemory(&wndclass, sizeof(WNDCLASSW)); wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = NULL; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance ; wndclass.hIcon = NULL ; wndclass.hbrBackground = (HBRUSH) GetStockObject (RGB(0,0,0)); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = name.c_str(); if (!RegisterClass(&wndclass)) return false; hwnd = CreateWindow (name.c_str(), name.c_str(), WS_SYSMENU|WS_CAPTION , CW_USEDEFAULT, CW_USEDEFAULT, 1024, 768, NULL, NULL, hInstance, NULL); if(!IsWindow(hwnd)) return false; ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return true; } __w64 long __stdcall CWindow::WndProc(HWND__* hwnd, unsigned int message,__w64 unsigned int wParam, __w64 long lParam) { return ::DefWindowProc (hwnd, message, wParam, lParam); } |
Zitat
nur weil du auch einer bist der Grundlos versucht Patricks "Stil" zu kopieren
Zitat
Die while-Schleife in der Methode create ist übrigens sehr unschön!
Zitat von »"Theprogrammer"«
Zitat
nur weil du auch einer bist der Grundlos versucht Patricks "Stil" zu kopieren
Was willste mir damit jetzt sagen?
Zitat von »"Theprogrammer"«
Zitat
Die while-Schleife in der Methode create ist übrigens sehr unschön!
Ich weiß nicht recht wie ichs anders machen soll. Wie würdest du denn machen ;-)?
Zitat
Auslagern?
Werbeanzeige