tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
779
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Jellysheep
    Jellysheep Jellysheep ist offline Mitglied Platin
    Registriert seit
    Jan 2009
    Ort
    Arbeitsspeicher
    Beiträge
    689
    Hi,
    ich habe gerade einen Beispielbildschirmschoner ausprobiert:
    Code :
    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
    
    #include "stdafx.h"
    #include <windows.h>
    #include <scrnsave.h>
    #pragma comment(lib, "comctl32.lib")
    #pragma comment(lib, "scrnsave.lib")
     
     
    UINT timer_id;
    int r,g,b = 50;
     
    long WINAPI ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam,LPARAM lParam)
    {
        HDC dc;
        dc = GetDC(hWnd);
        char hallo[] = "Hallo Welt";
     
        switch(message)
        {
            case WM_CREATE:
                   SetTimer(hWnd,timer_id,100,NULL);
                   break;
     
            case WM_TIMER:
                   SetBkColor(dc,RGB(0,0,0));
                   SetTextColor(dc,RGB(r,g,b));
                   TextOut(dc,300,250,hallo,strlen(hallo));
     
                   r+=5;
                   b+=10;
                   g+=2;
                   break;
        }
        return DefScreenSaverProc(hWnd,message,wParam,lParam);
    }
     
    BOOL WINAPI ScreenSaverConfigureDialog(HWND hWnd,UINT message,WPARAM wParam, LPARAM lParam)
    {
        switch(message)
        {
            case WM_INITDIALOG:
                   return TRUE;
     
            case WM_COMMAND:
                   switch(LOWORD(wParam))
                   {
                       case IDOK:
                            EndDialog(hWnd,0);
                            return TRUE;
     
                       case IDCANCEL:
                            EndDialog(hWnd,0);
                            return FALSE;
                   }
                   break;
     
            case WM_CLOSE:
                   EndDialog(hWnd,0);
                   return TRUE;
        }
        return FALSE;
    }
     
    BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
    {
        MessageBox(NULL, "Dieser Bildschirmschoner hat keine Einstellungen", "Warnung", MB_ICONINFORMATION);
        return TRUE;
    }
    Und ich möchte jetzt erst mal lernen, Linien usw. zu zeichnen. Ich hab es schon geschafft, mit
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    POINT p[4];
        p[0].x = 100;
        p[0].y = 100;
        p[1].x = 200;
        p[1].y = 100;
        p[2].x = 200;
        p[2].y = 200;
        p[3].x = 100;
        p[3].y = 200;
        Polygon(dc, p, 4);
    ein weißes Quadrat auszugeben, aber ich weiß nicht, wie ich Farbe und Rahmen ändern kann, und mit Polyline komme ich nicht zurecht.
    Hat jemand einen Code, der bestimmte (farbige) Polylines oder Polygones zeichnet?
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo,

    zuallererst: gezeichnet wird immer bei der WM_PAINT-Message. Falls du über einen Timer periodische Zeichenoperation anstoßen willst, setze dort nur entsprechende Statusvariablen und erzwinge das Zeichnen mit "Invalidate()".

    Ansonsten schaue mal in
    dieses Tutorial hinein. Speziell die Abschnitte "GDI Fundamental Shapes" und "GDI Tools: Pens" dürften für deine aktuelle Frage interessant sein.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    Avatar von Jellysheep
    Jellysheep Jellysheep ist offline Mitglied Platin
    Registriert seit
    Jan 2009
    Ort
    Arbeitsspeicher
    Beiträge
    689
    Cool, danke! Ich schaus mir mal an...
     

Ähnliche Themen

  1. Antworten: 22
    Letzter Beitrag: 18.08.09, 16:36
  2. Bildschirmschoner
    Von Blümchen im Forum Coders Talk
    Antworten: 16
    Letzter Beitrag: 02.08.05, 14:48
  3. Säulen Zeichnen, Drachen zeichnen
    Von RudeJava im Forum Photoshop
    Antworten: 34
    Letzter Beitrag: 17.07.05, 09:34
  4. Bildschirmschoner
    Von Slazer im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 15.06.03, 03:16
  5. Bildschirmschoner
    Von Mantiz im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 03.09.01, 11:39

Stichworte