Domanda

Stringray griglia , v'è la possibilità di utilizzare uno sfondo trasparente che consente sfondo della finestra di dialogo da visualizzare attraverso la griglia.

Nella documentazione si legge:

Ma attenzione; è necessario disattivare lo scorrimento o si deve ridisegnare la griglia ogni volta che viene fatto scorrere (sovrascrivendo DoScroll).

Ho un gird scorrevole e sovrascrivere il DoScroll e assicurarsi Redraw ho chiamata e Invalidate anche provato, ma la griglia non è ancora completamente cancellando e ridisegnando.

Ho anche provato utilizzando il vecchio metodo di disegno modificando m_bForceOldDrawing a TRUE.

Come posso creare una griglia che ha uno sfondo trasparente che dipingere correttamente dopo un rotolo senza lasciare artefatti?

È stato utile?

Soluzione

Sì, bisogna ridisegnare la griglia sovrascrivendo DoScroll perché non è più sta usando ScrollWindow per scorrere i contenuti perché lo sfondo è trasparente.

Tuttavia ora avete artefatti della griglia sopra il vostro sfondo.

Questo è perché lo sfondo dietro la griglia non è sempre ridisegnato.

Hai impostato clipchildren per il genitore?

Un altro potenziale problema è che lo sfondo non è in corso di definizione, perché non si rende conto che è stato esposto.

Prova chiamando il genitore con il seguente.

Parent.Invalidate (); Parent.UpdateWindow ();

prima di chiamare ...

Invalidate ();

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top