¿Cómo establecer el foco en un botón en el cuadro de diálogo de VC?
Establecer foco: la siguiente declaración se agrega a la función OnInitDialog()
GetDlgItem(ID)-gt; ¿SetFocus() es el ID del control? p>Acceso directo La tecla está configurada en la función PreTranslateMessage(MSG* pMsg)
En cuanto a presionar la tecla TAB y no hay respuesta. Compruebe si el elemento Tab Stop está seleccionado al configurar las propiedades de control.
A menudo es necesario establecer el foco (cursor) en un control específico cuando se abre la ventana.
Todos sabemos que establecer el foco requiere el uso del método setFocus (este es el caso en casi cualquier entorno de programación, como VC, C#, VB y VF).
Pero en VC usamos GetDlgItem(IDC_XX)-gt; SetFocus() puede no necesariamente lograr el efecto que necesitamos.
No es suficiente si simplemente configuramos SetFocus(), también necesitamos configurar la última oración de retorno de OnInitDialog en el cuadro de diálogo en "FALSE"
He estado en; En el cuadro de diálogo, se verifica y prueba la entrada de cada control. Cuando se detecta una entrada que no cumple con los requisitos, aparecerá un cuadro de diálogo.
Mi intención original era abrir un cuadro emergente, pero después de confirmar y regresar al formulario, puse el foco y el cursor en el control correspondiente, pero no pude levantarme.
Al principio pensé que la configuración de Setfocus no era válida, pero luego descubrí que era lógicamente incorrecta, porque cuando se muestra el cuadro de aviso, el enfoque establecido a través de SetFocus antes de que aparezca el cuadro de aviso no será válido. .
Después de descubrir esto, almacené el control de destino que necesita enfocarse antes de que aparezca el cuadro de aviso. Después de que se muestre el cuadro de aviso, aún puedo enfocar el control y el problema finalmente se resuelve. .