CSplitButton::OnDropDown
Controla la notificación de BCN_DROPDOWN que el sistema envía cuando un usuario hace clic en la flecha de lista desplegable del control actual de botón de expansión.
afx_msg void OnDropDown(
NMHDR* pNMHDR,
LRESULT* pResult
);
Parámetros
Parámetro |
Descripción |
---|---|
[in] pNMHDR |
Puntero a una estructura de NMHDR que contiene información sobre la notificación de BCN_DROPDOWN . |
[out] pResult |
(No utilizado; no se devuelve ningún valor.) Valor devuelto de notificación de BCN_DROPDOWN . |
Requisitos
encabezado: afxcmn.h
Este método se admite en Windows Vista y posterior.
los requisitos adicionales para este método se describen en Requisitos de compilación para los controles comunes de Windows Vista.
Comentarios
Cuando el usuario hace clic en la flecha desplegable de un control de botón de expansión, el sistema envía un mensaje de notificación de BCN_DROPDOWN , que el método de OnDropDown controla. Sin embargo, el objeto de CSplitButton no reenvía la notificación de BCN_DROPDOWN el control que contiene el control de botón de expansión. Por consiguiente, el control contenedor no puede admitir una acción personalizada en respuesta a la notificación.
Para implementar una acción personalizada que el control contenedor admite, utilice un objeto de CButton con un estilo de BS_SPLITBUTTON en lugar de un objeto de CSplitButton . A continuación implemente un controlador para la notificación de BCN_DROPDOWN en el objeto de CButton . Para obtener más información, vea Estilos de botón.
Para implementar una acción personalizada que el propio control de botón de expansión admite, utilice reflexión de mensaje. Derive poseen la clase de la clase de CSplitButton y la llama, por ejemplo, CMySplitButton. A continuación agregue el mapa del mensaje en la aplicación para controlar la notificación de BCN_DROPDOWN :
BEGIN_MESSAGE_MAP(CMySplitButton, CSplitButton)
ON_NOTIFY_REFLECT(BCN_DROPDOWN, &CMySplitButton::OnDropDown)
END_MESSAGE_MAP()