Cómo procesar la notificación de DTN_WMKEYDOWN
En este tema se muestra cómo procesar una notificación de DTN_WMKEYDOWN . Controlar este código de notificación permite al propietario del control proporcionar respuestas específicas a las pulsaciones de teclas dentro de los campos de devolución de llamada del control.
Lo que necesita saber
Tecnologías
Requisitos previos
- C/C++
- Programación de la interfaz de usuario de Windows
Instrucciones
Los controles selectores de fecha y hora (DTP) envían el mensaje de DTN_WMKEYDOWN para informar de que el usuario ha escrito la entrada en un campo de devolución de llamada. Si desea emular las mismas respuestas de teclado que se admiten para los campos DTP estándar o proporcionar respuestas personalizadas, la aplicación debe incluir código para controlar esta notificación.
El siguiente ejemplo de código de C++ es una función definida por la aplicación que procesa la notificación DTN_WMKEYDOWN .
Advertencia de seguridad: El uso de lstrcmp incorrectamente puede poner en peligro la seguridad de la aplicación. Por ejemplo, antes de llamar a lstrcmp en el ejemplo de código siguiente, debe asegurarse de que las dos cadenas están terminadas en null. Debe revisar Consideraciones de seguridad: Controles de Microsoft Windows antes de continuar.
// DoWMKeydown increments or decrements the day of month according
// to user keyboard input.
void WINAPI DoWMKeydown(
HWND hwndDP,
LPNMDATETIMEWMKEYDOWN lpDTKeystroke)
{
int delta =1;
if(!lstrcmp(lpDTKeystroke->pszFormat,L"XX")){
switch(lpDTKeystroke->nVirtKey){
case VK_DOWN:
case VK_SUBTRACT:
delta = -1; // fall through
case VK_UP:
case VK_ADD:
lpDTKeystroke->st.wDay += (WORD) delta;
break;
}
}
}
Temas relacionados