Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



pozadie listview

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: pozadie listview

Autor: majsinko

8:25:56 18.06.2010

takze je to nakoniec vyriesene. po pridani

ListView_SetTextBkColor(hListView, CLR_NONE);

netreba nic prekreslovat a ListView funguje ako ma.

Citovat příspěvek

 

Re: pozadie listview

Autor: Honza Havelka

8:31:11 11.06.2010

Sketch Napsal:
-------------------------------------------------------
> No ja som to práveže skúšal bez InvalidateRect a
> UpdateWindow. Iba to čo ste mi odporučili vy.
> Avšak nefunguje mi to ani tak. Teda zistil som, že
> mi to funguje iba so štýlom LVS_ICON. Pokiaľ chcem
> small icon, list alebo report tak je s tým
> obrázkom problém.

Překreslovat by se to mělo správně když to zkusíš takhle

RedrawWindow(hWnd,NULL,NULL,RDW_ERASE|RDW_ERASENOW|RDW_INTERNALPAINT|RDW_INVALIDATE|RDW_UPDATENOW|RDW_ALLCHILDREN);

ale počítej s tím, že blikání se jen tak jednoduše nezbavíš. Na odstraňování blikání se používají docela složité postupy s vlastní obsluhou vykreslování. Něco můžeš pochytit třeba z článku a zdrojáků od pana Zezuly na http://www.zezula.net/cz/prog/resize_windows.html kde se to sice používá k jinému účelu, ale princip je zhruba stejný.

Citovat příspěvek

 

Re: pozadie listview

Autor: Sketch

17:30:05 10.06.2010

No ja som to práveže skúšal bez InvalidateRect a UpdateWindow. Iba to čo ste mi odporučili vy. Avšak nefunguje mi to ani tak. Teda zistil som, že mi to funguje iba so štýlom LVS_ICON. Pokiaľ chcem small icon, list alebo report tak je s tým obrázkom problém.

Citovat příspěvek

 

Re: pozadie listview

Autor: Honza Havelka

14:36:19 07.06.2010

Sketch Napsal:
-------------------------------------------------------
> hmmm...no ako nápad to nemuselo byť zlé, avšak
> niečo podobné som skúšal pomocou InvalidateRect a
> UpdateWindow a malo to ten istý efekt, ako to Vaše
> riešenie. Strašne to preblikáva. Skúšal som svoju
> aplikáciu poslať kamarátovi, ktorý má Win 7 a jemu
> sa aplikácia správa normálne. Je možné, že je to
> nejaký bug v Common Controls knižnici, ktorý je vo
> vyšších verziách ošetrený?

Nevím proč ti to bliká. Pokud nepoužiješ InvalidateRect a UpdateWindow, ale jenom RedrawWindow s tím RDW_NOERASE tak by to blikat nemělo. Mě to ve Windows XP nebliká. Můžeš zkusit ještě vypustit příznak RDW_INTERNALPAINT a pokud to nebude stačit tak třeba i RDW_ALLCHILDREN.

Citovat příspěvek

 

Re: pozadie listview

Autor: Sketch

14:37:31 06.06.2010

hmmm...no ako nápad to nemuselo byť zlé, avšak niečo podobné som skúšal pomocou InvalidateRect a UpdateWindow a malo to ten istý efekt, ako to Vaše riešenie. Strašne to preblikáva. Skúšal som svoju aplikáciu poslať kamarátovi, ktorý má Win 7 a jemu sa aplikácia správa normálne. Je možné, že je to nejaký bug v Common Controls knižnici, ktorý je vo vyšších verziách ošetrený?

Citovat příspěvek

 

Re: pozadie listview

Autor: Honza Havelka

7:23:57 03.06.2010

Sketch Napsal:
-------------------------------------------------------
> Takže nikto nič nevie? :)

Pro překreslení okna listview není potřeba minimalizovat.
Stačí při události vyvolané tím překliknutím na druhou položku zavolat toto:

RedrawWindow(hWnd,NULL,NULL,RDW_NOERASE|RDW_INTERNALPAINT|RDW_INVALIDATE|RDW_UPDATENOW|RDW_ALLCHILDREN);

Citovat příspěvek

 

Re: pozadie listview

Autor: Sketch

17:13:51 02.06.2010

Takže nikto nič nevie? :)

Citovat příspěvek

 

Re: pozadie listview

Autor: Sketch

12:52:42 29.05.2010

Dobrý deň,

skúšal som všetko, čo tu bolo uvedené a zdá sa funguje až na jednu drobnosť.
Obrázok sa mi do pozadia podarilo dostať ale ListView nadobudol trochu zvláštne vlastnosti. Vyzerá to tak, že sa neprekresľuje pri voľbe položiek, ktoré v ňom sú.
Zvolil som štýl pre listview single select ale keď označím jednu položku a potom prekliknem na druhú, tak ostanú zvýraznené obidva. Takto to ide celé až pokiaľ nevynútim prekreslenie ListView a to tak, že minimalizujem okno alebo ho prekryjem iným.

Neviete niekto, kde môže byť problém?
Ďakujem.

Citovat příspěvek

 

Re: pozadie listview

Autor: Honza Havelka

10:39:26 27.05.2010

pleytwak Napsal:
-------------------------------------------------------
> Jestli to chápu správně, tak přímo COM objekty
> používat nemusíš, jen někde na začátku před
> nastavením pozadí listview zavoláš CoInitialize()
> a na konci CoUninitialize().
> Samotné nastavení obrázku se provede zasláním
> zprávy LVM_SETBKIMAGE.
> Samozřejmě si můžeš listview vykreslovat sám
> obsluhou WM_PAINT a příslušných "customdraw"
> zpráv, ale u toho se trochu zapotíš... ;-)

Přesně tak. Použití CoInitialize() a CoUninitialize() je to nejjednodušší co může udělat a pak už jen stačí poslat zprávu na handle okna listviewu. Pokud by si to chtěl vykreslovat sám, tak to je nesrovnatelně složitější a neznám k tomu žádný komplexní příklad. Osobně jsem to vlastní vykreslování ani nikdy nepotřeboval tj. vždycky mi stačilo použití zpráv jako stačí i v tomhle případě.

Citovat příspěvek

 

Re: pozadie listview

Autor: pleytwak

9:16:14 27.05.2010

Jestli to chápu správně, tak přímo COM objekty používat nemusíš, jen někde na začátku před nastavením pozadí listview zavoláš CoInitialize() a na konci CoUninitialize().
Samotné nastavení obrázku se provede zasláním zprávy LVM_SETBKIMAGE.
Samozřejmě si můžeš listview vykreslovat sám obsluhou WM_PAINT a příslušných "customdraw" zpráv, ale u toho se trochu zapotíš... ;-)

Citovat příspěvek

 

Re: pozadie listview

Autor: majsinko

18:49:21 26.05.2010

dakujem
skor by som vsak uvital nico kde nemusim pouzit COM objekty.

Citovat příspěvek

 

Re: pozadie listview

Autor: Honza Havelka

17:39:37 26.05.2010

majsinko Napsal:
-------------------------------------------------------
> Dobry den potreboval by som nastavit staticky
> obrazok do pozadia listview. Vie niekto ako nato?

LVM_SETBKIMAGE
http://msdn.microsoft.com/en-us/library/bb761155(VS.85).aspx
http://bcbjournal.org/articles/vol4/0012/Adding_a_background_image_to_a_list.htm

Citovat příspěvek

 

pozadie listview

Autor: majsinko

12:58:26 26.05.2010

Dobry den potreboval by som nastavit staticky obrazok do pozadia listview. Vie niekto ako nato? Dakujem

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: