如何处理 DTN_WMKEYDOWN 通知
本主题演示如何处理 DTN_WMKEYDOWN 通知。 通过处理该通知代码,控件所有者可以在控件的回调字段中对按键做出特定的响应。
需要了解的事项
技术
先决条件
- C/C++
- Windows 用户界面编程
说明
日期和时间选取器 (DTP) 控件会发送 DTN_WMKEYDOWN 消息,以报告用户在回调字段中输入了内容。 如果要模拟标准 DTP 字段支持的相同键盘响应或提供自定义响应,则应用程序必须包含处理此通知的代码。
以下 C++ 代码示例是一个应用程序定义的函数,用于处理 DTN_WMKEYDOWN 通知。
安全警告:错误使用 lstrcmp 会危及应用程序的安全。 例如,在以下代码示例中调用 lstrcmp 之前,应确保两个字符串都是以 null 结尾。 在继续之前,应查看安全注意事项:Microsoft Windows 控件。
// 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;
}
}
}
相关主题