/*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) ;
}