22

SEP09

WinAPI C++ Das erste Fenster unter Windows

Trackback URIVon Peppie in C++, Programmierung

Das lang ersehnte Fenster

Lasst uns nun das Fenster im Ganzen erstellen, dies machen wir mit der Funktion CreateWindow

1
2
3
4
5
6
7

WindowHandle = CreateWindow( WinClassName,
                    _T("TestWindow"),
                    WS_OVERLAPPEDWINDOW,
                    CW_USEDEFAULT, CW_USEDEFAULT,
                    800, 600, NULL, NULL,
                    p_hInstance, NULL );

Auch hier werde ich nur kurz auf die wesentlichen Dinge eingehen, den Rest bitte wieder aus MSDN nehmen. Im ersten Parameter dieser Funktion sagen wir, welchen Style unser Fenster bekommt, also unsere definierte WindowClass die den Namen WinClassName trägt. Im 2. Parameter definiert ihr den Titel des Fensters, bzw. das was oben links im Fenster zu sehen ist. Mit dem Wert 800 und 600 definieren wir die Fenstergröße.

Soo aber nun sind wir noch lang nicht durch. Zunächst sollte man überprüfen ob das Erstellen geklappt hat. Entweder mit “IsWindow” oder einfach abfragen ob der HandlePointer != NULL ist.

1
2
if( !IsWindow( WindowHandle ) )
    return -1;

Sollte das nicht geklappt haben dann wieder raus aus der Anwendung.

Nun haben wir zwar ein Fenster erstellt aber wenn wir unsere Anwendung ausführen würden dann würde man nichts sehen da wir ihm erst den Befehl geben müssen.

1
2
ShowWindow( WindowHandle, SW_SHOWNORMAL );
UpdateWindow( WindowHandle );

Mit ShowWindow sagen wir dem Fenster es soll mit dem Style “SW_SHOWNORMAL” angezeigt werden, man kann auch einstellen, dass ein Fenster minimiert gestartet wird, dies macht man dann mit diesem Parameter. Im nächsten Step gehen wir in unsere Message-Loop (Main-Loop), die unsere Nachrichten die uns Windows schickt, abholt und verarbeitet. Hier kommt dann unsere definierte Message-Variable zum Einsatz.

1
2
3
4
5
while( GetMessage( &WindowMessages, NULL, 0, 0 ) )
{
    TranslateMessage( &WindowMessages );
    DispatchMessage( &WindowMessages );
}

Mit dem Befehl “GetMessage” wird die Nachricht die in unserem “Postfach” liegt abgeholt, danach mit TranslateMessage übersetzt und mit Dispatch an unseren definierten Callback ( den wir noch nicht erstellt haben :) ) gesendet. So langsam sind wir am Ende unserer WinMain-Funktion. Verlasst die Funktion mit einem return 0.

1
return 0;

Auf der nächsten Seite gehen wir endlich unseren Callback Handler an xD

Seite:
1 2 3

Peppie
Über den Autor:
Vor mehr als 6 Jahren habe ich mein Hobby zum Beruf gemacht. Seit her bekommt mich kein Problem so schnell in die Knie, ich bin sehr verbissen und arbeite solange an einem Problem bis es gelöst ist.

Ähnliche Artikel:

8 Kommentare

Maysi2k

Na ENDLICH! Wurde ja auch langsam mal Zeit :D Werste später direkt mal Visual Studio E Installieren und das ganze mal Ausprobieren ;)


Peppie

*hehe Jep nur zu, und danach lernste das alles erst mal auswendig xD


Maysi2k

Auswendig ? Kannst du es denn ? *muhaha


Peppie

Ähm, ja? !! :>


Maysi2k

*hihi


Maysi2k

Edit: Deine Uhr geht Falsch :D


klugscheißer

man leute man muss das nicht auswendig lernen man sollte eher wissen was man da macht! ;)


Peppie

Das ist z.B. ein Grund wieso wir damals Klugscheißer immer verdroschen haben *lach*

Natürlich ist es nicht ein “auswendig lernen” vielleicht seh ich es aber auch nur als eine Selbstverständlichkeit das man aus solchen Tutorials einfach auch mal Werte solang ändert bis man versteht was da passiert, ggf. auf anderen Seiten, unter anderem auch MSISDN, nachliest was da geschieht.

Somit nehmt meinen Kommentar mit “auswendig lernen” nicht Wort wörtlich :>


Kommentar schreiben

;) :( :) :D :P :o :| ^^ :> :< :cry: :S xD


Blogverzeichnis - Blog Verzeichnis bloggerei.de frisch gebloggt Blog Top Liste - by TopBlogs.de Bloggeramt.de Add to Technorati Favorites Dennis bei Xing Wikio - Top Blog