Gå til innhold

CListCtlr/View med CustomDraw


Anbefalte innlegg

Driver og fikser på et relativt stort program skrevet i Visual C++ og har litt problemer.

 

Viser en del data i en klasse derivert fra CListView og lagrer dataene i en CListCtrl. Pga. datamengden har jeg laget en egen klasse for å lagre informasjonen og henter den vha. TextCallback. Det skal være litt farger på teksten og bruker Customdraw til det.

 

Og så kommer vi til sakens kjerne. En metode er på forhånd definert i ListView klassen, men ifølge MSDN er dette en metode som tilhører ListCtrl. Programmet har virket med dette oppsettet så det skulle ikke være noe i veien med å beholdet. Hadde det vært bedre å flytte metoden -- minst like bra?

 

Det andre spørsmålet er om det er nødvendig i det hele tatt å ha denne metoden. Tydligvis siden standardmetoden kun har en linje med kode: ASSERT(FALSE);

Er det noen alternativer? Noen som har vært borti lignende før?

Lenke til kommentar
Videoannonse
Annonse

Det er snakk om å fjerne 'override'en, ikke standardmetoden som inneholder assert. Det er sannsynligvis noe annet som er i uorden også.

 

Prøvde å skrive return; som første linje i Override-metoden og da klikket det ihvertfall ikke. Men det var ikke så mye tekst som kom opp heller.

Lenke til kommentar
  • 2 uker senere...

Til info: CListView objektet som noen andre hadde kodet hadde satt en flag til OWNER_DRAW. Ved å ta bort denne vil ikke DrawItem metoden bli kalt opp. Problem løst.

 

Nytt problem:

 

Har en kommando som forandrer farger i bakgrunnen på listen i 'report view' utifra visse kriterier. Når man bruker denne vil ikke fargeleggingen bli synlig med mindre man tar muspilen over linjen (dårlig løsning) eller bruker CListCtrl.Update(linje). Nå er det veldig mange linjer i disse kontrollene, så hvis noen vet om en måte å teste om linjen er synlig.

 

Har funnet en metode som heter IsVisible(), men den er ikke for CListCtrl. Fungerer den allikevel?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...