[delphi] odświezenie pulpitu

0

Witam.
mam pytanie. czy da sie jakos szybciej <ort>odświerzyc </ort>pulpit niż poprzez:

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);

chodzi mi o coś jak w podrecznym menu "odśwież" na pulpicie

0

No tak...to moze ja jasniej wyjasnie mam se program malujący po pulpicie (taki maly bajer na moj pulpitek ;d)

do malowania po pulpicie uzywam hooka i jesli przechodzi WM_PAINT to mam tak:

var 
 PS    : TPaintStruct;
 DC    : HDC;
        
DC := BeginPaint(GetDesktopListViewHandle, PS);
        SetBkMode(DC, TRANSPARENT);
        SetTextColor(DC, RGB(251, 172, 58));
 TextOut(DC, 1024 - 350, 30, pn1, Length(teksst));
EndPaint(GetDesktopListViewHandle, PS);

zmienna teksst jest dosyc czesto zmieniana...tzn. czesto zmienia sie wyswietlany tekst...i z kazda zmiana potrzebne jest odswiezenie pulpictu, inaczej sie nie wyswietla...i do tego wlasnie potrzebuje dosyc szybki sposo...albo moze jest jakis sposob aby tekst sie zmienial bez odswiezania ?

0

no ale w takim wypadku hookowanie WM_PAINT mija się z celem - zrób sobie zrzut tego kawałka po którym malujesz i nie odświeżaj tylko zamaluj stary text i napisz nowy. W WM_PAINT doświeżaj sobie tylko screena, którego masz do zamalowywania

0

poprawka :

TextOut(DC, 1024 - 350, 30, teksst, Length(teksst));

tak powinno byc ;) i tak mam ale problem nadal nie rozwiązany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1