Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> C / C++
Autor
Nachricht
Musicblogs
Newbie
Newbie

Anmeldedatum: 29.01.2009
Beiträge: 2

[C++ WinAPI] Windows-Fenster
Verfasst am: 29.01.2009, 21:04

Hallo Leute,
da es viele nicht verstehen , werde ich heute mal zeigen wie man in C++ ein Windows-Fenster darstellen kann.
Irgendwann werde ich dann evtl. auch noch Buttons und so erklären , falls es erwünscht ist (bitte Posten !)

So, Viel Spaß

Code:


#define STRICT    //Benötigt man..

#include <windows.h> //Benötigt man..

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);  //Zum Epfangen der Eingaben des Benutzers

const char szAppName[] = "Ein eigenes Fenster";  //Fensterklassen-Name

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,   //Sub Beginn
                   PSTR szCmdLine, int iCmdShow)
{

      HWND       hWnd;  //hwnd deklarieren
   MSG        msg;             //msg deklarieren (wird zum übergeben von eingaben benötigt)
   WNDCLASS   wc;          //Windows Klasse "wc" deklarieren

//Jetzt wird die Windows Klasse "wc" mit Informationen gefüllt. Das ist praktisch das Fenster..:

      wc.style         =  CS_HREDRAW | CS_VREDRAW;  //Style
   wc.lpfnWndProc   =  WndProc;

      wc.cbClsExtra    =  0;
   wc.cbWndExtra    =  0;



      wc.hInstance     =  hInstance;
   wc.hCursor       =  LoadCursor(NULL,IDC_ARROW);  //Curosor
   wc.hIcon         =  LoadIcon(NULL,IDI_APPLICATION);  //Icon
   wc.hbrBackground =  (HBRUSH)GetStockObject(WHITE_BRUSH); //Background Farbe (in dem Fall weiß)

      wc.lpszClassName =  szAppName;  //Fensterklasse
   wc.lpszMenuName  =  NULL;  //Kein Menü (NULL)

      RegisterClass(&wc);  //Das ganze registreiren

        hWnd = CreateWindow(szAppName,  //Das ganze Fenster mit dem deklarierten hwnd handle erstellen (CreateWindow)
                       "Titelleiste",
                       WS_OVERLAPPEDWINDOW,
                       CW_USEDEFAULT,          /* X-Position auf dem Monitor */
                       CW_USEDEFAULT,          /* Y-Position auf dem Monitor */
                       CW_USEDEFAULT,          /* Fensterbreite              */
                       CW_USEDEFAULT,          /* Fensterhoehe               */
                       NULL,
                       NULL,
                       hInstance,
                       NULL);

          ShowWindow(hWnd, iCmdShow);  //Das Fenster anzeigen
   UpdateWindow(hWnd);  //und Updaten

//Soo..nun wird das Fenster angezeigt & der Benutzer kann es steuern.

     while (GetMessage(&msg, NULL, 0, 0))           //Wenn eine Message reingeht (z.b. wenn der Nutzer "Schliessen" gedrückt hat
   {

             TranslateMessage(&msg);          //Wird die Nachricht übersetzt
      DispatchMessage(&msg);                           
   }

       return msg.wParam;                          //Nun wird die Nachricht returnt..
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)  //Hier werten wir die msg aus
{

      switch (message)  //Wir wählen jetzt aus , was passeiren soll wenn der benutzer was gemacht hat.
   {

         
   case WM_DESTROY:     //Wenn er SCHLIESEN gedrückt hat ,
      {
         PostQuitMessage(0);   //Wird das Fenster geschlossen
         return 0;
      }
   }
   return DefWindowProc(hWnd, message, wParam, lParam); //Dann noch returnen
}

//Ende



Das ist nur für fortgeschrittene gedacht.
Wenn ihr mehr von sowas wollt dann postet es bitte Smile
_________________
 
igoe
Gast





Verfasst am: 10.02.2009, 14:35

Also ich finde das klasse, mach bitte mehr, war sowieso am überlegen, ob ich VB hinter mir lasse... :>

lg, igoe
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> C / C++

Tags: fenster, winapi, windows, erstellen, hwnd

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [suche] Tuturials winsock & daten senden 868 09.06.2011, 12:19
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2432 06.03.2008, 20:19
Keine neuen Beiträge ListView speichern & laden 1242 05.08.2008, 12:32
Keine neuen Beiträge Registry & Co Fragen 1101 03.05.2007, 09:57
Keine neuen Beiträge Listbox speichern & laden 2047 22.03.2007, 20:25
 



[ Time: 0.1601s ][ Queries: 85 (0.0243s) ][ GZIP on - Debug on ]