PDA

View Full Version : [Visual C++]Creare una bitmap in esecuzione


nucarote
11-01-2010, 17:24
Avrei necessità di creare una bitmap, punto per punto, in esecuzione in una finestra di Windows utilizzando il C++, in maniera analoga a quella mostrata in questo esempio http://msdn.microsoft.com/it-it/library/ms404307.aspx
Vi ringrazio fin da ora per tutti i consigli e suggerimenti ricevuti.

SerMagnus
11-01-2010, 18:00
è semplice, ti crei una picturebox a cui associ un oggetto bitmap mediante la proprietà image.
con l'oggetto bitmap giochi con il metodo setpixel e lavori punto per punto

bastava leggere un minimo della documentazione :P

ti faccio un piccolo esempio in c#


public void CreateBitmapAtRuntime()
{
PictureBox pictureBox1 = new PictureBox();
this.Controls.Add(pictureBox1);

pictureBox1.Size = new Size(100, 110);

Bitmap bmp = new Bitmap(100, 100);

bmp.SetPixel(50, 50, Color.Black);
bmp.SetPixel(51, 51, Color.Black);
bmp.SetPixel(52, 52, Color.Black);
bmp.SetPixel(53, 53, Color.Black);
bmp.SetPixel(54, 54, Color.Black);

pictureBox1.Image = bmp;

}

nucarote
11-01-2010, 20:47
è semplice, ti crei una picturebox a cui associ un oggetto bitmap mediante la proprietà image.
con l'oggetto bitmap giochi con il metodo setpixel e lavori punto per punto

bastava leggere un minimo della documentazione :P

ti faccio un piccolo esempio in c#


public void CreateBitmapAtRuntime()
{
PictureBox pictureBox1 = new PictureBox();
this.Controls.Add(pictureBox1);

pictureBox1.Size = new Size(100, 110);

Bitmap bmp = new Bitmap(100, 100);

bmp.SetPixel(50, 50, Color.Black);
bmp.SetPixel(51, 51, Color.Black);
bmp.SetPixel(52, 52, Color.Black);
bmp.SetPixel(53, 53, Color.Black);
bmp.SetPixel(54, 54, Color.Black);

pictureBox1.Image = bmp;

}

Ho usato anche questo metodo ma non funziona (mi da errore sull'ultima istruzione) e comunque trovo emblematico il fatto che l'esempio analogo al tuo non esista in versione C++ ma solo VB e C#.

nucarote
13-01-2010, 10:51
Altri suggerimenti?

nucarote
28-01-2010, 16:19
riporto su, ma questa volta non usando più .NET, ma puramente C.

fero86
28-01-2010, 18:29
chiaramente in C/C++ non puoi usare .NET, devi usare la GDI. nella tua finestra devi gestire opportunamente il messaggio WM_PAINT chiamando la SetPixel: http://msdn.microsoft.com/en-us/library/dd145078(VS.85).aspx

qui c'é la documentazione di WM_PAINT: http://msdn.microsoft.com/en-us/library/dd145213(VS.85).aspx