Domanda

Il ListView in Comtl32.dll v6.0 fa selezione multipla (quando si utilizza il tasto Shift) come segue (x mezzi scelti)

00xxxx
xxxxxx
xxxx00

Le versioni precedenti di ListView lo fanno nel modo seguente:

00xx00
00xx00
00xx00

C'è un modo per averlo fare il primo modo (il modo in cui comctl32 v6.0)?

Grazie John

È stato utile?

Soluzione

La risposta breve è no. , ma perché sembra incompleta ...

Il ListView non espone un'API che permette di cambiare il suo comportamento di selezione, e come Hans obliquamente mette nel suo commento, l'unico modo per modificare il comportamento del controllo ListView trovato nelle versioni di Comctl32.dll prima versione 6.0 è con una macchina del tempo. C'è un sacco di comportamento unico costruito nel controllo ListView quanto riguarda gli eventi di selezione, quindi, anche se si dovesse provare e proprietario disegnare il controllo per modificare il aspetto del comportamento di selezione, si sarebbe improvvisamente essere di fronte a dover gestire un numero quasi ridicola di messaggi di finestra che potrebbe potenzialmente causare un cambiamento di selezione.

E 'anche la pena sottolineare che la questione è fuorviante su un livello completamente diverso. Se l'utente della vostra applicazione è in esecuzione una versione di Windows che include una versione di comctl32.dll precedente alla versione 6.0, Questo è il comportamento che si aspettano di fuori del controllo ListView. Override e la modifica che sarebbe nient'altro che confusione per loro, perché non avrebbe funzionato allo stesso modo di ogni altro controllo ListView trovato sul proprio computer. Al contrario, se l'utente della vostra applicazione è in esecuzione una versione di Windows che include v6 comctl32.dll o poi, il controllo ListView sarà già eseguire come lei per impostazione predefinita. (E non dovrebbe andare vogliono cambiarlo esattamente per le stesse ragioni.)

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