Win32 App. Text im Fenster ausgeben???
-
Hallo Leute!
Programmiere noch nicht so lange an einer Win32 Applikation.
Nun möchte ich Hauptfenster eine Text ausgeben, bzw. einen Integer Wert.
Bsp.: X = 15
Dieser wert soll laufend erneuert werden wenn sich die Variable ändert.
Wie funktioniert sowas? Der Text soll oben-links im Fenster ausgegeben werden.
Gruß
WAR][FIRE
-
-
Oder auch ein STATIC-Fenster und entsprechend updaten.
-
Mit Text Out hat es jetzt geklappt.
Allerdings updatet sich dich Zahl nicht!
case WM_PAINT: //Setzte Greifer zu! Z++; //Gucken ob sich zahl updatet length = sprintf(temp,"Z = %f",Z); hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; TextOut (hdc, pos, pos, temp, length) ; EndPaint (hwnd, &ps) ; // UpdateWindow (hwnd) ; Beep(1000,100); break;Das auskommentierte UpdateWindow(hwnd) bringt auch nichts.
Muss man noch irgendwas beachten?
EDIT: Mal die ganze Funktion:
/* This function is called by the Windows function DispatchMessage() */ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { int zDelta=0; int Z =0; HDC hdc ; PAINTSTRUCT ps ; RECT rect ; char zeichen[30] = {"Z = "}; char temp[20]= {' '}; int length; int pos = 20; switch (message) /* handle the messages */ { case WM_DESTROY: PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; case WM_PAINT: //Setzte Greifer zu! length = sprintf(temp,"Z = %f",Z); hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; TextOut (hdc, pos, pos, temp, length) ; EndPaint (hwnd, &ps) ; // UpdateWindow (hwnd) ; Beep(1000,100); break; //Bewegungsteuerung! //========================= case WM_MOUSEWHEEL: zDelta = GET_WHEEL_DELTA_WPARAM(wParam); //<-- Wenn positiv wurde das Rad nach vorne gedreht, wenn negativ wurde es nach hinten gedreht.(120-er Schritte) if( zDelta > 0 && true/*MOVE ACHSEN*/) {Z--; Beep(500,100);/*MessageBox(hwnd,"Scroll hoch","Z--",MB_OK);*/} if( zDelta < 0 && true/*MOVE ACHSEN*/) {Z++; Beep(5000,100);/*MessageBox(hwnd,"Scroll runter","Z++",MB_OK);*/}//Vom Feeling her logischer [scrollrad nach oben = Roboter geht hoch] //Bewegungsteuerung! ENDE default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); } return 0; }Gruß
WAR][FIRE
-
Ein Fenster wird immer nur neu gezeichnet, wenn es nötig ist. Heißt, wenn du ein Neuzeichnen herbeiführen willst, musst du das explizit angeben, z.B. mit der Funktion "InvalidateRect".
-
Sauber, das funktioniert! Danke!!!
