[CBitmap] dynamisch erstellen ?



  • Hi,

    ich möchte ein Bitmap erstellen für eine CListCtrl. Es sollte die Grösse eines Icons haben und dynamisch mit einer beliebigen Farbe komplett gefüllt werden.
    Hat jemand so etwas oder ähnliches schon mal gemacht bzw. gibt's dafür ein Tutorial? 😕

    Danke,
    don_basto



  • Das MSDN-Sample CtrlTest dürfte ein guter Anfang sein.



  • Hab mir das Beispiel angesehen, aber nichts nützliches gefunden. Dort wird das Bitmap geladen und nicht manipuliert.
    Ich suche eine Möglichkeit, das Bitmap während der Ausführung zu ändern, ohne auf gespeicherte BMPs zurückzugreifen. Sollte nicht weiter kompliziert sein. 😉
    Nur komme ich im MSDN nicht mit den Parameter klar, bzw. was da gemeint ist. Ich vermute, das es irgendwie so gehen sollte:

    // Start
    	unsigned char myArray[32][32][3];
    	for (int i=0; i<32; i++)
    		for (int j=0; j<32; j++)
    			myArray[i][j] = { 255,	// rot
    							  0,	// grün
    							  0 }	// blau
    	CBitmap myBMP;
    	myBMP.CreateBitmap(32,			// Breite
    					   32,			// Höhe
    					   ???,			// nPlane
    					   ???,			// nBitcount
    					   myArray);	// Farbinformationen
    	// Ändern
    	for (int i=0; i<32; i++)
    		for (int j=0; j<32; j++)
    			myArray[i][j] = { 255,	// rot
    							  255,	// grün
    							  0 }	// blau
    	myBMP.SetBitmapBits(???,	// dwCount
    					    myArray	// Farbinformationen
    

    Dafür suche ich ein Beispiel .. 😕



  • Wie wär's hiermit:

    http://www.henkessoft.de/mfc_einsteigerbuch_kapitel4.htm

    Der Autor treibt sich übrigens auch hier im Forum rum.

    CMonochrom_BitmapView::CMonochrom_BitmapView() 
    { 
     for(int i=0; i<=9; i++) A[i]=0; // Alle Punkte auf schwarz setzen 
    
     A[0] = 128+64+      8+4+2+1; A[1] = 128+64+32+16+8+4+2+1; 
     A[2] = 128+   32+16+  4+2+1; A[3] = 128+   32+16+8+  2+1; 
     A[4] = 128+   32+16+8+4+2+1; A[5] =           16+      1; // C++ 
     A[6] = 128+   32+16+  4+2+1; A[7] = 128+   32+16+8+  2+1; 
     A[8] = 128+64+      8+4+2+1; A[9] = 128+64+32+16+8+4+2+1; 
    
     Bild.CreateBitmap(16, 5, 1, 1, A); 
    }
    


  • Danke für den Link, genau so etwas habe ich gesucht. 👍
    Damit sollte ich es hinbekommen. 🙂

    Thx,
    don_basto


Anmelden zum Antworten