CreateDIBSection - zeichnen schlägt fehl



  • hallo,

    ich habe ein fenster hWnd mit 400 * 400 pixeln.

    dann habe ich eine HBITMAP erzeugt durch eben diese funktion CreateDIBSection.
    das handle ist gültig und der bit-zeiger auch. ich kann auch super darauf
    byte für byte rummalen. nur normale funktionen wie TextOut gehen nicht mehr

    msdn meint dazu ich soll GdiFlush aufrufen, aber egal wieoft ich das tue,
    es kommt trotzdem kein text

    void render(GdiDraw *gdi)
    {
    	GdiFlush();
    	struct rgb
    	{
    		unsigned char r, g, b, a;
    	};
    	rgb *ptr = (rgb *)GetBits(gdi);
    	for (unsigned i = 0; i < GetHeight(gdi); ++i)
    	{
    		for (unsigned j = 0; j < GetWidth(gdi); ++j)
    		{
    			rgb *curr = ptr + i * GetWidth(gdi) + j;
    			curr->r = rand() % 256;
    			curr->g = rand() % 256;
    			curr->b = rand() % 256;
    		}
    	}
    	GdiFlush();
    	TextOut(GetDeviceContext(gdi), 50, 50, "huhu", 4);
    	GdiFlush();
    }
    

    GdiDraw ist eine struktur die alles wichtige enthällt.

    der HDC den ich für die TextOut-funktion brauche, ist ein gültiger dc von
    GetDC.

    das bild wird auch schön bunt durch die schleife, nur kommt kein text

    MfG devicecontext



  • falscher device context



  • der devicekontext ist derselbe wo auch die bitmap von CreateDIBSection
    reinselektiert ist.


Anmelden zum Antworten