Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Coding Releases > Coding Snippets
You last visited: Today at 09:44

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++] WinAPI GUI Wrapper

Discussion on [C++] WinAPI GUI Wrapper within the Coding Snippets forum part of the Coding Releases category.

Reply
 
Old   #1

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
[C++] WinAPI GUI Wrapper

Mal wieder was kleines von mir.
Momentan versuche ich mich ein wenig an der Win32 API & das C-Zeugs hat mich irgendwann genervt, also habe ich angefangen, Wrapper für die GUI-Elemente zu schreiben.

Momentan sind 2 Controls fertig, Button und Window. Bis auf WM_COMMAND und WM_DESTROY wird bisher keine Nachricht verarbeitet.

nd::Window kann mit dem += Operator neue Controls hinzufügen (wie z.B. den Button) und mit dem -= Operator können diese wieder entfernt werden.
nd::Button kann mit dem += Operator EventHandler hinzufügen, die müssen dem Prototypen LRESULT(UINT, WPARAM, LPARAM) entsprechen, Lambda-Funktionen gehen natürlich ohne Probleme.

Jedes Element erbt von Control, das eine abstrakte Klasse ist. Pure virtuals sind hier bisher nur der () Operator (UINT, WPARAM, LPARAM) und die einzigen Member sind das HWND und das HINSTANCE.

Wer Lust hat, kann das ganze gerne ausbauen oder was auch immer damit machen. Ich werde das ganze immer mal wieder erweitern & hier updaten, als nächstes sind Label, TextFields und Timer geplant.

Beispiel zur Verwendung:

Code:
        nd::Window window("Testwindow", "wnd");
	nd::Button button("Click me!", { 10, 10, 80, 30 });
	button += [](UINT message, WPARAM wParam, LPARAM lParam) -> LRESULT { MessageBoxA(nullptr, "Hi!", "nd test!", MB_OK); return 0; };

	nd::Button exit_button("Delete other button :O", { 60, 200, 200, 40 });
	exit_button += [&](UINT message, WPARAM wParam, LPARAM lParam) -> LRESULT { window -= button; return 0; };

	window += button;
	window += exit_button;
	
	return nd::Window::Run();
Der Code sollte relativ verständlich sein, durch die std::intializer_list wird VS2013 oder VS2012 mit diesem CTP Update benötigt.

Verbesserungsvorschläge sind gerne gesehen, ich hab das ganze innerhalb von ein paar Stunden und ohne vorheriges Konzept geschrieben.
Attached Files
File Type: zip gui.zip (3.1 KB, 35 views)
snow is offline  
Thanks
10 Users
Reply


Similar Threads Similar Threads
Glide-Wrapper
01/23/2012 - Diablo 2 - 3 Replies
jo jo, ich brauch hier mal einen, der bissel was davon versteht^^ läuft er überhaput auf meinem rechner... Prozessor: AMD Athlon(tm) X2 Dual-Core QL-64 2.1 GHz is win7 drauf... das zeigt er mir an, is das alles so richtig?
[C++] OpenGl-Wrapper mit CS1.6
01/18/2012 - C/C++ - 5 Replies
Hey Leute, ich bin zum Glück kein absoluter Noob mehr im Bereich des Programmierens und hab vor ein paar Jahren auch schonmal einen Wallhack und co. für Counterstrike geschrieben. Das ist schon länger her und wollte jetzt nochmal mit dem Thema starten. Also hab ich mir kurzerhand einen wrapper downgeloaded und injected. Das Problem an der Sache ist: die dll-Main wird ausgeführt aber die gehookte gl_begin(..)-Methode dummerweise nicht. Jetzt frage ich mich ob diese Methode irgendwie von Steam...
au3 wrapper
12/23/2008 - Guild Wars - 11 Replies
hi ganz dumme fragen^^ wo gibst den neuen au3 wrapper zum download bei google habe ich ncihts gefunden oder ich bin einfach zu blöd zum richtig googlen kann mir wer weiter helfen??
Empty wrapper help
01/18/2008 - WoW PServer Exploits, Hacks & Tools - 1 Replies
I play on wowfusion, the only wrapping paper i can get is the empty wrapper. But everytime i try to wrap something i get : Wrapped item can't be wrap. What can i do? I tryed a lot of item and i always get this same message. I tryed slot switching , other bags and ... Any help would be appreciated. Thx



All times are GMT +1. The time now is 09:44.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.