1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# include <windows.h>
LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); //callback
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){
WNDCLASS windowclass;
HWND hWnd;
MSG msg;
static TCHAR szClassName[] = TEXT("Das erste Fenster");
// windowclass.cbSize = sizeof(WNDCLASSEX); //zwischensp. größe struct
windowclass.style = CS_HREDRAW | CS_VREDRAW; //neuzeichnen des feinsters bei verschiebung
windowclass.lpfnWndProc = WindowProc; // pointer @ callback
windowclass.cbClsExtra = 0;
windowclass.cbWndExtra = 0;
windowclass.hInstance = hInstance;
windowclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
// windowclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
windowclass.hCursor = LoadCursor (NULL, IDC_ARROW);
windowclass.hbrBackground = (HBRUSH) COLOR_BACKGROUND+1;
windowclass.lpszMenuName = NULL;
windowclass.lpszClassName = szClassName;
if(!RegisterClass(&windowclass)) return 0;
hWnd = CreateWindow (
szClassName,
TEXT("Das erste Fenster!"),
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
100, 100,
300, 250,
NULL,
NULL,
hInstance,
NULL);
//if(hWnd == NULL) return 0;
ShowWindow (hWnd, iCmdShow) ;
UpdateWindow (hWnd) ;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
} //winmain
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps ;
RECT rect ;
switch(message)
{
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps) ;
GetClientRect (hWnd, &rect) ;
DrawText (hdc, TEXT ("Hallo, Zeus. Du schaffst es!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hWnd, &ps) ;
return 0 ;
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
case WM_KEYDOWN:
{
switch(wParam)
{
case VK_ESCAPE:
{
PostQuitMessage(0);
return 0;
}
}
} break;
}
return (DefWindowProc (hWnd, message, wParam, lParam));
}
|