[ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Pictureboxy

Registrovaný: 03.05.08
Prihlásený: 20.06.12
Príspevky: 8
Témy: 2 | 2
Bydlisko: LC
NapísalOffline : 14.04.2010 0:05 | Pictureboxy

1. problem
ako prekreslim na pictureboxe jeho image?
Kód:
        public void ShowStep(Form pForm, int pStep)
        {
            Bitmap bmp = new Bitmap(19, 25);
            Graphics g = pbStep.CreateGraphics();
            //Graphics g = Graphics.FromImage(bmp);
            pbStep.Image = bmp;
            g.DrawString(pStep.ToString(), new Font("Arial", 17), new SolidBrush(Color.Snow), new Point(0, 0));
            //prekreslenie stepu
        }

prve nakreslenie je vpohode, lenze ked kreslim druhykrat, tak sa mi to len prekresluje jedno cez druhe, tj prvy string mi nezmizne nech to robim takto alebo aj tym zakomentovanym sposobom
poznamka: BackColor je nastavene na transparent

2. problem
kedze picturebox nepodporuje priehladnost (to co je u neho prihladnost je nieco moc divne, pretoze to len prekresluje pixely svojho parenta na seba :( ), vytvoril som si podla navodov z webu vlastny picturebox:
Kód:
public class MyPB : Control
        {
            private Image _image;

            public MyPB()
            {
                SetStyle(ControlStyles.SupportsTransparentBackColor, true);
                SetStyle(ControlStyles.Opaque, true);
                BackColor = Color.Transparent;
            }

            protected override CreateParams CreateParams
            {
                get
                {
                    CreateParams cp = base.CreateParams;
                    cp.ExStyle |= 0x20;
                    return cp;
                }
            }

            protected override void OnPaint(PaintEventArgs e)
            {
                if (Image != null)
                {
                    e.Graphics.DrawImage(_image, 0, 0, _image.Width, _image.Height);
                }
            }

            protected override void OnPaintBackground(PaintEventArgs e)
            {
                //Do not paint background
            }

            public Image Image
            {
                get
                {
                    return _image;
                }
                set
                {
                    _image = value;
                }
            }
        }

toto uz sa da potom nazvat prihladnost (prave vdaka metode createParameters) lenze ked mi moj picturebox zmeni polohu na forme, pozadie toho _image si nejak zabudol updatnut a ma ho z predoslej pozicie :( ak sa to neda pochopit doplnim scrinsoty

zatim dik


_________________
Born in past, alive now, perhaps the death will arrive someday.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.12.06
Prihlásený: 01.03.13
Príspevky: 239
Témy: 20 | 20
Bydlisko: Krásno n/Ky...
NapísalOffline : 19.04.2010 18:23 | Pictureboxy

Neviem ci som ta spravne pochopil, ale skusim. Tiez vo svojom projekte pouzivam PictureBox do ktoreho vykreslujem zatial 1 obrazok z kamery a v pohode ide po stisknuti tlacitka vzdy vykreslit 1 obrazok. Skus nieco ako

Kód:
if (pictureBox.Image != null)
{
   pictureBox.Image.Dispose();
   pictureBox.Image = null;
   pictureBox.Refresh();
}


a potom mu nastav novy image.


Offline

Užívateľ
Užívateľ
Pictureboxy

Registrovaný: 03.05.08
Prihlásený: 20.06.12
Príspevky: 8
Témy: 2 | 2
Bydlisko: LC
Napísal autor témyOffline : 05.05.2010 22:21 | Pictureboxy

no robil som aj update() aj refresh() aj nieco tretie (nevim si rychlo spomenut)
ale nepomohlo, ono sa to sprava tak, ze ked pomocou alt+tab prepnem na ine okno a znovu zobrazim to herne, je to prekreslene ako chcem, ked picturebox (ten moj MyPB) opat presuniem, zas si so sebou vezme uz teraz nove pozadie, a opat ked prepnem na ine okno a spat zas je to spravne...


_________________
Born in past, alive now, perhaps the death will arrive someday.
 [ Príspevkov: 3 ] 


Pictureboxy



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

VB: rozsiahle menu a pictureboxy

v Delphi, Visual Basic

1

655

02.11.2008 13:11

Patkoo



© 2005 - 2024 PCforum, edited by JanoF