(Mi permetta di chiamare questi eventi mouse su e mouse verso il basso. La mia MFC è un po 'arrugginito. E non c'è questa roba chiamata .NET che è stato in disordine mia terminologia ultimamente ;-)
Breve storia : Non vuoi semplicemente sapere del clic del mouse. Hai bisogno di più.
Lunga storia:
Anche se questo è contro-intuitivo, sembra che semplicemente vogliono un clic del mouse è abbastanza raro. Molto spesso, ti consigliamo di eseguire alcune elaborazioni su Mouse Down e di eseguire ulteriori elaborazioni su Mouse Up. Il trucco è che il semplice monitoraggio dei messaggi Mouse Up non è sufficiente: Mouse Down potrebbe non essersi verificato nella tua finestra. Lo consideri un clic valido allora? Soprattutto se si considera che l'elaborazione Mouse Down (come la selezione di un elemento) non si è verificata.
Andando oltre il ragionamento, non si dovrebbe fare affidamento sulla ricezione di un mouse dopo aver elaborato il mouse verso il basso: l'utente potrebbe aver spostato il mouse e rilasciato il pulsante da qualche altra parte (pensate a drag'n'drop), nel qual caso, non ricevi l'evento MouseUp ... a meno che non catturi il mouse su MouseDown per assicurarti di ottenere l'evento del mouse fino a Mouse Up anche se il mouse lascia la tua finestra.
Tutto sommato, si finisce col rintracciare Mouse Down, catturare il mouse e quando si riceve Mouse Up, è sufficiente controllare se si possiede la cattura. In caso contrario, il mouse è stato fatto doppio clic (nessun secondo mouse verso il basso) o Mouse Down è successo da qualche altra parte, quindi molto probabilmente non ti importa di questo Mouse Up.
In conclusione: Non c'è un messaggio MouseClick semplicemente perché non si andrebbe molto lontano con esso: è necessario gestire più messaggi e implementare più meccanismi comunque.
Oh! E se hai a che fare con un controllo esistente che gestisce già tutti questi elementi e elementi di selezione, come ad esempio un elenco, è probabile che fornisca una notifica personalizzata simile come Attiva oggetto o Selezione oggetto modificata.
fonte
2009-02-03 19:29:00