CYFROWY BARON • PROGRAMOWANIE • Zobacz wÄ…tek - [BCB C++] TListView różnice Refresh | Repaint | Invalidate

[BCB C++] TListView różnice Refresh | Repaint | Invalidate

dział ogólny

[BCB C++] TListView różnice Refresh | Repaint | Invalidate

Nowy postprzez Darek_C++ » poniedziaÅ‚ek, 27 sierpnia 2012, 10:40

Jaka jest praktyczna różnica między tymi metodami: Refresh | Repaint | Invalidate
Chodzi o odświeżenie TListView który ma ustawione pokazywanie linii które czasami się "psują" gdy mam autoscrolowanie w dół
KOD cpp:   •  UKRYJ  •
if(this->iNrNaLiscie > 20) SendMessage(ListView1->Handle, WM_VSCROLL, SB_LINEDOWN, 0);
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
PodziÄ™kowaÅ‚ : 66
OtrzymaÅ‚ podziÄ™kowaÅ„: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: [BCB C++] TListView różnice Refresh | Repaint | Invalidate

Nowy postprzez Cyfrowy Baron » poniedziaÅ‚ek, 27 sierpnia 2012, 11:58

Refresh - powoduje ponowne odrysowanie widocznych elementów kontrolki. Powoduje natychmiastowe przerysowanie ekranu. Funkcja ta wywołuje funkcję Repaint. Refresh i Reapint mogą być używane zamiennie.

Repaint - wymusza na kontrolce ponowne odrysowanie widocznych elementów kontrolki. Powoduje natychmiastowe przerysowanie ekranu. Jeżeli właściwość ControlStyle = csOpaque, metoda ta jest wywoływana bezpośrednio, w przeciwnym razie metoda ta najpierw wywołuje metodę Invalidate a następnie metodę Update, która to z kolei powoduje, że wszystkie elementy widoczne jak i znajdujące się poza obszarem widocznym zostają ponownie odrysowane.

Invalidate - całkowicie przemalowuje kontrolkę. - Używa się gdy cała kontrolka musi zostać przerysowana, czyli gdy więcej niż jeden region w obszarze kontrolki potrzebuje przerysowania. Funkcja ta powoduje, że całe okno kontrolki jest przerysowywane w jednym przebiegu. Pozwala uniknąć zbędnego migotania obiektu przy przerysowywaniu. Jest to najbardziej wydajna metoda przerysowywania.

Update - powoduje, że wszystkie oczekujące komunikaty dotyczące rysowania zostają natychmiast przetworzone. Używa się do wymuszenia przetworzenia wszystkich oczekujących komunikatów PAINT. Częste wywoływanie może spowolnieć całą aplikację. Działa podobnie jak Invalidate.

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Darek_C++
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 5 gości