(Por favor, permítame llamar a estos eventos ratón hacia arriba y hacia abajo del ratón. Mi MFC es un poco oxidado. Y hay esta cosa llamada .NET que ha estado arruinando mi terminología últimamente ;-)
Breve historia : No solo quiere saber sobre Mouse Click. Necesitas mas.
Larga historia:
Aunque esto es contrario a la intuición, parece que simplemente desean un clic del ratón es bastante infrecuente. En la mayoría de los casos, querrás realizar algún procesamiento en Mouse Down y realizar un procesamiento adicional en Mouse Up. El truco es que simplemente el seguimiento de los mensajes de Mouse Up no es suficiente: puede que Mouse Down no haya sucedido en su ventana. ¿Lo considera un clic válido entonces? Especialmente teniendo en cuenta que el procesamiento de Mouse Down (como la selección de un elemento) no se produjo.
Yendo más allá del razonamiento, no debe confiar en recibir un Mouse Up después de procesar Mouse Down: el usuario puede haber movido el mouse y haber soltado el botón en otro lugar (piense en arrastrar y soltar), en cuyo caso, no recibe el evento MouseUp ... a menos que capture el mouse en MouseDown para asegurarse de que el evento del mouse llegue a Mouse Up, incluso si el mouse dejó su ventana.
Con todo, usted termina rastreando Mouse Down, captura el mouse y cuando recibe Mouse Up, simplemente verifique si posee la captura. Si no, se hizo doble clic en el mouse (no se hizo el 2do mouse hacia abajo) o Mouse Down sucedió en otro lugar, por lo tanto, es muy probable que no te importe este Mouse Up.
En conclusión: No hay mensaje MouseClick simplemente porque no llegaría muy lejos con él: Necesita manejar más mensajes e implementar más mecanismos de todos modos.
¡Oh! Y si se trata de un control existente que ya maneja todos estos elementos y elementos de selección, como una vista de lista, es probable que proporcione una notificación personalizada similar, como Activar artículo o Cambiar elemento seleccionado.