Win API Tut...frage
-
hiho
hab ne frage zieh mir grad n WINAPI tut rein http://www.win-api.de/winapi/tut03.html <- das da..so und bei denn übungsaufgaben...wie mach ich da en 2ten text hine ? da wird ja inem fenster nen text ausgegeben,´nur wie der 2te ?
hier ma denn code ::/*
* Tutorial Code zu: Tutorial 3 "Ausgabe im Anwendungsbereich"
*
* http://www.Loggy.de.st/
*
* Henno Buschmann (Loggy.mail@gmx.de)
*/#define STRICT
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
const char szAppName[] = "Ausgabe im Anwendungsbereich";
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MSG msg;
HWND hWnd;
WNDCLASS wc;wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszClassName = szAppName;
wc.lpszMenuName = NULL;RegisterClass(&wc);
hWnd = CreateWindow( szAppName,
szAppName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);ShowWindow(hWnd, iCmdShow);
UpdateWindow(hWnd);while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}return msg.wParam;
}LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_PAINT:
{
PAINTSTRUCT ps; /* Soll Daten über den Zeichenbereich speichern /
HDC hDC; / Handle auf den Zeichenbereich */const char szText[] = "Hallo, dies ist der Text.";
hDC = BeginPaint(hWnd, &ps); /* Meldet Zeichenoperation an */
{ /* Zeichnet den Text /
TextOut(hDC, 270, 230, szText, sizeof(szText) - 1);
}
EndPaint(hWnd, &ps); / Beendet Zeichenoperation */
return 0;
}
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}return DefWindowProc(hWnd, message, wParam, lParam);
}danke tschau
-
Nen 2. Text im Fenster? Einfach hinter dem TextOut zwischen BeginPaint und EndPaint noch ein TextOut setzen.
M.T.
-
Ja, so:
#define STRICT #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); const char szAppName[] = "Ausgabe im Anwendungsbereich"; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MSG msg; HWND hWnd; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wc.lpszClassName = szAppName; wc.lpszMenuName = NULL; RegisterClass(&wc); hWnd = CreateWindow( szAppName, szAppName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, iCmdShow); UpdateWindow(hWnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_PAINT: { PAINTSTRUCT ps; HDC hDC; const char szText[] = "Hallo, dies ist der Text."; hDC = BeginPaint(hWnd, &ps); { TextOut(hDC, 270, 230, szText, sizeof(szText) - 1); TextOut(hDC, 270, 250, szText, sizeof(szText) - 1); //<- Gleichen Text 20 Pixel darunter nochmal zeichnen } EndPaint(hWnd, &ps); return 0; } case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hWnd, message, wParam, lParam); }
ok?
-
und dann nur mal so als tip nebenbei:
wie wärs wenn du dir einfach mal die lösung anguckst
, oder ist dir das zu einfach ?
-
vielleicht ist auch der Kurs was für Dich: http://mitglied.lycos.de/ehenkes/api1.htm
-
Original erstellt von <win3k>:
vielleicht ist auch der Kurs was für Dich: [url=http://mitglied.lycos.de/ehenkes/api1.htm]http://mitglied.lycos.de/ehenkes/api1.htm[/QB][/QUOTE][/url]
nein tut er nicht -> http://www.tripod.lycos.de/error/404.phtml