OldSchoolHack

Register / Login English

[Tutorial] Einführung - OldSchoolHack GUI verwenden


icon [Tutorial] Einführung - OldSchoolHack GUI verwenden #1

Join Date: Aug 2007

Posts: 8646

User-Rating:

199 positive
33 negative
OldSchoolHack GUI herunterladen

Das OldSchoolHack GUI kann per SVN heruntergeladen werden.
SVN Url: http://svn.oldschoolhack.de/oshgui/trunk/
Benutzername: anonymous
Passwort: keins

Alternativ gibt es hier ein Archiv:
http://gui.oldschoolhack.de/source/oshgui_20111216.zip


Um das OldSchoolHack GUI benutzen zu können, sind nur wenige Schritte notwendig:
-# Einbinden der entsprechenden Headerdateien:
CPP Code:
  1. #include "OSHGui.h"
  2. #include "Input\<Platform>.h" //dazu später mehr
  3. #include "Drawing\<RenderEngine>.h" //dazu später mehr
-# Vorbereiten des GUIs und erzeugen des Renderers:
CPP Code:
  1. //Beispiel: DirectX9
  2. //#include "Drawing\Direct3D9endererDX9.h"
  3. Application::Create(new Drawing::RendererDX9(device)); //device ist ein Zeiger auf IDirect3DDevice9
-# Initialisieren der Nachrichtenverarbeitung:
CPP Code:
  1. //Beispiel: Windows
  2. //#include "Input\Windows.h"
  3. Input::Windows input;
  4. //ohne Hook in einer normalen Nachrichtenschleife bei Windowsprogrammen:
  5. MSG msg;
  6. ZeroMemory(&msg, sizeof(msg));
  7. while (true)
  8. {
  9. if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
  10. {
  11. input.ProcessMessage(&msg);
  12.  
  13. if (msg.message == WM_QUIT)
  14. {
  15. break;
  16. }
  17.  
  18. TranslateMessage(&msg);
  19. DispatchMessage(&msg);
  20. }
  21. }
  22. //oder per Hook
  23. HHOOK hookHandle;
  24. LRESULT CALLBACK MessageHook(int code, WPARAM wParam, LPARAM lParam)
  25. {
  26. if (lParam &0x80000000 || lParam &0x40000000)
  27. {
  28. return CallNextHookEx(hookHandle, code, wParam, lParam);
  29. }
  30.  
  31. if (code == HC_ACTION)
  32. {
  33. if (input.ProcessMessage((LPMSG)lParam))
  34. {
  35. return TRUE;
  36. }
  37. }
  38.  
  39. return CallNextHookEx(hookHandle, code, wParam, lParam);
  40. }
  41. hookHandle = SetWindowsHookEx(WH_GETMESSAGE, MessageHook, NULL, GetCurrentThreadId());
  42.  
-# Erzeugen und Zuweisen der Hauptform:
CPP Code:
  1. Application::Run(std::shared_ptr<Form>(new MeineForm())); //mehr dazu im Tutorial "Eine neue Form erstellen"
-# Vorbereiten der grafischen Ausgabe:
CPP Code:
  1. //Beispiel: DirectX9
  2. device->Clear(0, 0, D3DCLEAR_TARGET, 0xFF000000, 1.0f, 0);
  3. device->BeginScene();
  4.  
  5. Application::GetRenderer()->Begin();
  6. Application::Render();
  7. Application::GetRenderer()->End();
  8.  
  9. device->EndScene();
  10. device->Present(0, 0, 0, 0);
-# Aktivieren und Deaktivieren des GUI:
CPP Code:
  1. Application::Enable();
  2. ...
  3. Application::Disable();
  4. //oder Application::Toggle();


__________________

Hallo