Linie Malen :)



  • Hi, wie kann ich eine Linie auf einen DC Zeichenen ??


  • Mod

    MoveTo / LineTo



  • Wieso Funktioniert dass nicht ??

    int DrawBitmap(char *SrcBitmap,int x,int y,HWND hWnd)
    {
    	HDC dcScreen;
    
    	HWND hwndDesktop = GetDesktopWindow();
    
        dcScreen = GetDC(hwndDesktop);
    
    	MoveToEx(dcScreen,10,10,NULL);
    	LineTo(dcScreen,10,10);
    
    	dcScreen = GetDC(hWnd);
    
    	return(0);
    }
    

  • Mod

    Weil Du keine Linie malst. Du sagst von 10,10 nach 10,10 eine Linie malen. Diese Linie ist 0 Pixel lang!

    BTW: Wenn Du schon so etwas Übles machst wie einen DC direkt zu holen, dann solltest Du auch ReleaseDC verwenden.



  • Ich bekomme aber immer noch keine Linie 😞

    int DrawBitmap(char *SrcBitmap,int x,int y,HWND hWnd)
    {
    	HDC dcScreen;
    
    	HWND hwndDesktop = GetDesktopWindow();
    
        dcScreen = GetDC(hwndDesktop);
    
    	MoveToEx(dcScreen,10,10,NULL);
    	LineTo(dcScreen,10,700);
    
    	dcScreen = GetDC(hWnd);
    
    	return(0);
    }
    


  • int DrawBitmap(HDC hDC, LPCTSTR lpszSrcBitmap, short x, short y)
    {
        if (hDC == NULL || lpszSrcBitmap == NULL)
            return -1;
    
        MoveToEx(hDC, 10, 10, NULL);
        LineTo(hDC, 10, 100);
    
        return 0;
    }
    

    Und dann übergibst du mal nen existierenden HDC und machst da net so nen murckx



  • @(D)Evil:
    Entweder da fehlt das Zeichnen der Bitmap oder die Parameter sind überflüssig... 😉 .



  • CodeFinder
    Nee, hab den nur drin gelassen, da er das selbst machen soll.

    Aber von mir aus:

    int DrawBitmap(HDC hDC, LPCTSTR lpszSrcBitmap, unsigned short x, unsigned short y)
    {
        if (hDC == NULL || lpszSrcBitmap == NULL)
            return -1;
    
        HBITMAP hBitmap = LoadBitmap(GetModuleHandle(NULL), lpszSrcBitmap);
    
        if (hBitmap == NULL)
            return -2;
    
        HDC hMemDC = CreateCompatibleDC(hDC);
    
        if (hMemDC == NULL)
            return -2;
    
        SIZE szBitmap;
    
        GetBitmapDimensionEx(hBitmap, &szBitmap);
        SelectObject(hMemDC, hBitmap);
        BitBlt(hDC, x, y, szBitmap.cx, szBitmap.cy, hMemDC, 0, 0, SRCCOPY);
        DeleteDC(hMemDC);
    
        return 0;
    }
    

Log in to reply