000
12.12.2004, 06:41 Uhr
StarMan
|
Hallo ;-)
Folgendes Experimentierfeld....
C++: |
#include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
char str[] = "Dies ist ein Test"; // Teststring
~ ~
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; HWND hwndButton1;
switch (message) { case WM_PAINT: BeginPaint (hwnd, &ps); SetTextColor(ps.hdc, RGB(124,236,120) ); SetBkMode(ps.hdc, TRANSPARENT); TextOut (ps.hdc, 20, 80, str, sizeof(str)-1); EndPaint (hwnd, &ps); break;
case WM_CREATE : hwndButton1 = CreateWindow ( "button", "TEST", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 150, 20, 100, 40, hwnd, (HMENU)1, (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL); break;
case WM_COMMAND: if(LOWORD(wParam) == 1) { char str[] = "Hallo"; // Neuer Teststring... wird nicht angezeigt :-( InvalidateRect(hwnd, NULL, TRUE); // neu zeichnen } break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage (0); break; default: return DefWindowProc (hwnd, message, wParam, lParam); } return 0; }
|
Ich kapiere nicht warum es nicht möglich ist, im case-Zweig: "WM_COMMAND" dem char str[] einen neuen Text zuzuweisen? Es wird nach wie vor der ganz oben stehende String: "Dies ist ein Test" ausgegeben. Dieser Post wurde am 12.12.2004 um 06:43 Uhr von StarMan editiert. |