problem mit setviewportorg und moveto



  • so hab das programm direkt aus nem totur übernommen
    aber wie gesagt die funktionen "SetviewportOrg" und "MoveTo" funzen nicht

    weiß zufällig wer warum
    was hab ich falsch gemacht??

    aja kompiler fehler:
    93 D:\Peace\C\ctoturial\vswinmain\vswinmian.cpp SetViewportOrg' undeclared (first use this function) 106 D:\\Peace\\C\\ctoturial\\vswinmain\\vswinmian.cppMoveTo' undeclared (first use this function)

    verwend DEV-C++ ide falls eine rolle spielt.

    schon mal danke im voraus

    #include <windows.h>
    #include <math.h>
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "WindowsApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */
    
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH)GetStockObject (WHITE_BRUSH);
    
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;
    
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Rosette",           /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               CW_USEDEFAULT,       /* The programs width */
               CW_USEDEFAULT,       /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    
        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);
    
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }
    
        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }
    
    /*  This function is called by the Windows function DispatchMessage()  */
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
            HDC          hdc;
            PAINTSTRUCT  ps;
            static int cxClient, cyClient, nPoints = 25;
            double Radius, dPhi;
    
            int i, j, xs, ys;
    
        switch (message)                  /* handle the messages */
        {
            case WM_SIZE:
                 cxClient = LOWORD (lParam);
                 cyClient = HIWORD (lParam);
                 return 0;
    
            case WM_PAINT:
                 hdc = BeginPaint(hwnd, &ps);
    			 SetViewportOrg (hdc, cxClient /2, cyClient /2); /*<--Fehler*/
                 Radius = ((cxClient > cyClient) ? cyClient :cxClient) *0.45;
                 dPhi = atan(1.) * 8. /nPoints;
    
                 for(i=0; i < nPoints; i++)
                 {
                          xs = (int) (Radius * cos(dPhi *i) + .5);
                          ys = (int) (Radius * sin(dPhi *i) + .5);
    
                          for(j=0; j<nPoints; j++)
                          {
                                   if(j!=i)
                                   {
                                           MoveTo (hdc, xs, ys); /*<--Fehler*/
                                           LineTo (hdc, 
                                                   (int) (Radius * cos(dPhi *j) +.5),
                                                   (int) (Radius * sin(dPhi *j) +.5)
                                                   );
    
                                   }
                          }
                 }
                 EndPaint(hwnd, &ps);
                 return 0;
    
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                return 0;
        }
    
        return DefWindowProc (hwnd, message, wParam, lParam);
    }
    


  • Was hat das mit Standard C/C++ zu tun ?? 🙄 🙄



  • ah sh** hab mich verlesen
    dachte das SOLL hier rein

    ➡ kann das wer verschieben??

    tschuldigung

    naja kann mir trotzdem wer helfen?



  • stichwort: gegen gdi32.dll linken



  • der kennt wohl einfach die funktionen nich
    such mal lieber nach moveToEx(...) für die GDI-Linie und die andere Fkt. sagt mir garnix



  • ok movetoEx(..) lauft

    bleibt noch das prob mit setviewportorg

    gdi32 schrieb:

    stichwort: gegen gdi32.dll linken

    wie kann ich das linken??



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler-Forum verschoben.

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

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten