Feynman Skrevet 30. april 2004 Del Skrevet 30. april 2004 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
GeirGrusom Skrevet 30. april 2004 Del Skrevet 30. april 2004 Hvis metoden ikke gjøre noe annet en assert er det vel ikke noe vits i å fjerne den? though assertions er litt irriternde innimellom...bare litt...det er som en feilmelding som ikke sier noe annet en at det er en feil. Lenke til kommentar
Feynman Skrevet 30. april 2004 Forfatter Del Skrevet 30. april 2004 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
GeirGrusom Skrevet 30. april 2004 Del Skrevet 30. april 2004 Har hatt noe av de samme problemene med MFC jeg også, jeg mener det hadde noe med hvordan du lager vinduet ditt, vinduer som ikke vises modalt må deklareres globalt i prosjektet (CWinApp eller noe), ellers får du masse assertions og sånn Lenke til kommentar
Feynman Skrevet 12. mai 2004 Forfatter Del Skrevet 12. mai 2004 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå