Paint- Funktion



  • Hallo zusammen!

    Ich sitze gerade noch an einem C-Projekt als Windowsprogramm, in dem sich Punkte über den Bildschirm bewegen sollen. Ich soll hier die Timer- mit der Paint- Funtion kombinieren.

    Um eine Beliebige Anzahl von Punkten mit den gleichen Bewegungsformeln darzustellen will ich je Timersignal eine for-schleife ablaufen lassen.

    Jetzt mein Problem:
    Am ende der for-schleife steht mein unterprogramm, das die werte in eine grafik umwandelt. allerdings bleibt im endeffekt nur das bild des letzten durchlaufs der for- schleife stehen. Wie kann ich denn verhindern, dass er bei jedem durchlauf des zeichen unterprogrammes den bildschirm erst löscht?

    Hier noch der Quelltext:

    case WM_TIMER:
    switch (wParam)
    {
    case IDT_TIMER1:

    t=t+0.1;
    xa = (xbeschlt);
    ya = (ybeschl
    t);

    for (i=1; i<=anzahl; i++)
    {
    xres = x[i]+xa;
    start_xl_a[i] = start_xl_a[i]+xres;
    start_xl[i] = round(start_xl_a[i]);

    yres = y[i]+ya;
    start_yo_a[i] = start_yo_a[i]+yres;
    start_yo[i] = round(start_yo_a[i]);

    zeichnen (hwnd, &start_xl[i] , &start_yo[i]);
    }

    Zeichenprogramm:

    BOOL zeichnen (HWND hwnd, int *start_xl, int *start_yo)//, int xr, int yo )
    {
    int ScreenColor;
    int xl,yo;

    HDC hdc ;
    PAINTSTRUCT ps ;
    RECT Rect ;

    InvalidateRect (hwnd, NULL, TRUE) ;
    hdc = BeginPaint (hwnd, &ps) ;
    SetBkMode(hdc, TRANSPARENT);

    ScreenColor = RGB(0, 0, 255);
    SelectBrush(hdc, CreateSolidBrush(ScreenColor));

    xl=*start_xl;
    yo=*start_yo;

    Ellipse(hdc, (xl), (yo), (xl+8), (yo+8));

    EndPaint (hwnd, &ps) ;
    UpdateWindow(hwnd);
    return 1;
    }

    Vielen Dank schon im Vorraus, für eure Hilfe!

    Christian



  • Das hat nix mit Ansi-C zu tun. Sondern mit der WinAPI.



  • und was ist winApi?

    kann ich da irgendwo was dran drehen??

    Vielen Dank schon im v******, für eure Hilfe!

    sollte voraus (mit 2 r) heissen, keine ahnung warum der das gesternchent hat....



  • kann mir jemand ne Lösung zu meinem Problemchen geben oder hab ich nicht nur ein Problemche, sondern ein handfestes Problem? Ich wäre euch sehr dankbar!!

    Ich schwitze

    Christian



  • Wie gesagt, du bist hier im falschen Forum. Was du da schreibst ist WinAPI (Windows Application Programmers Interface). Das sind Funktionen, die dir Windows zur Verfügung stellt - z.B. um Fenster zu erstellen und darin zu zeichnen.

    Es gibt hier auch ein Forum zur WinAPI - wenn du dort jemanden fragst (oder dich ein Mod verschiebt) bekommst du sicherlich schnell Hilfe.

    Dein Programm ist ein WinAPI-Programm (ich schätze mal, du hast es nur irgendwo abgetippt - sonst wüsstest du das). Das hat nichts mit ANSI C oder C++ Standard zu tun.

    Und voraus, wir mit einem 'r' geschrieben deswegen wird es "gesternchend".



  • Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • edit: habe gerade zweiten thread gesehen.


Anmelden zum Antworten