/*Beachte: Ich habe die Strukturinstanzen (klein) hwnd, msg und wndclass durch

katze, hund und vogel ersetzt, um darauf aufmerksam zu machen, dass dies

nur Bezeichner sind, Entsprechend könnte man mit (klein)hdc, ps und rect verfahren.*/

 

#include <windows.h>

 

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

 

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                                                        //WINAPI=Konstante

                    PSTR szCmdLine, int iCmdShow)                                                                                                         //HINSTANCE=typedef in header

     {

     static char szAppName[] = "HelloWin" ;

     HWND        katze ;                                   //Instanzen von Strukturen

     MSG         vogel ;

     WNDCLASSEX  hund;

 

     hund.cbSize        = sizeof (hund) ;               //Der ges. Block legt fest, wie mein

     hund.style         = CS_HREDRAW | CS_VREDRAW ; //Fenster aussieht

     hund.lpfnWndProc   = WndProc ;                                                                                                                        //Zeiger auf Fkt: Fensterprozedur

     hund.cbClsExtra    = 0 ;                                                                                                                                       //für dieses Fenster

     hund.cbWndExtra    = 0 ;

     hund.hInstance     = hInstance ;

     hund.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;

     hund.hCursor       = LoadCursor (NULL, IDC_ARROW) ;

     hund.hbrBackground = (HBRUSH) GetStockObject (DKGRAY_BRUSH) ;                                                       //(HBRUSH) ist typecast

     hund.lpszMenuName  = NULL ;                                                                                                                          //Zeiger für Menüleiste

     hund.lpszClassName = szAppName ;

     hund.hIconSm       = LoadIcon (NULL, IDI_APPLICATION) ;

 

     RegisterClassEx (&hund) ;

 

     katze = CreateWindow (szAppName,                                                                                                                  // window class name

                                    "Begrüßungsprogramm",                                                                                                        // window caption

                    WS_OVERLAPPEDWINDOW,                                                                                                         // window style

                    CW_USEDEFAULT,                                                                                                                          // initial x position

                    CW_USEDEFAULT,                                                                                                                          // initial y position

                    CW_USEDEFAULT,                                                                                                                          // initial x size

                    CW_USEDEFAULT,                                                                                                                          // initial y size

                    NULL,                                                                                                                                                 // parent window handle

                    NULL,                                                                                                                                                 // window menu handle

                    hInstance,                                                                                                                                             // program instance handle

                    NULL) ;                                                                                                                                                // creation parameters

 

     ShowWindow (katze, iCmdShow) ;

     UpdateWindow (katze) ;

 

     while (GetMessage (&vogel, NULL, 0, 0))                                                                                               //Nachricht von Windows wird verarbeitet

          {

          TranslateMessage (&vogel) ;                                                                                                                           //Nachricht übersetzen

          DispatchMessage (&vogel) ;                                                                                                                           //Nachricht verteilen

          }

     return vogel.wParam ;

     }

 

LRESULT CALLBACK WndProc (HWND katze, UINT cool, WPARAM affe, LPARAM mond)

     {

     HDC         hdc ;

     PAINTSTRUCT ps ;

     RECT        rect ;

 

     switch (cool)

          {

         

 

          case WM_PAINT :

                       hdc = BeginPaint (katze, &ps) ;

 

               GetClientRect (katze, &rect) ;

/*DT_SINGLELINE        | DT_LEFT | DT_VCENTER usw. sind Konstanten aus der windows.h

verknüpft durch bitweises ODER*/

               DrawText (hdc, "&Mein Name ist Klaus Weyell,", -1, &rect,                                                                     //"&" im String

                                                DT_SINGLELINE        | DT_LEFT | DT_VCENTER) ;                                          //unterstreicht Buchstb.

                                      DrawText     (hdc, "Dies ist mein erstes Windows - Programm.", -1, &rect,

                                                                        DT_EXTERNALLEADING         | DT_CENTER | DT_BOTTOM ) ;                                                                                                                                            

                                      DrawText     (hdc, "Mal gucken, ob das jetzt über den Rand schreibt!!!", -1, &rect,

                                                                        DT_SINGLELINE         | DT_RIGHT | DT_VCENTER ) ;                                                                                                                                                                      

                       EndPaint (katze, &ps) ;                                                                                                                                                                                            

               return 0 ;

 

          case WM_DESTROY :

               PostQuitMessage (0) ;

               return 0 ;

          }

 

     return DefWindowProc (katze, cool, affe, mond) ;

     }