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
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
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 ?
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
poprawka :
TextOut(DC, 1024 - 350, 30, teksst, Length(teksst));
tak powinno byc ;) i tak mam ale problem nadal nie rozwiązany.