我正在使用 C++ 和本机 WINAPI(即没有 MFC 等)开发针对 POCKET PC 2003(Windows CE 4.2)设备的应用程序。在其中我有一个单行编辑控件主窗口的哪个部分(不是对话框);因此,当按下 ENTER 时,Windows 的正常行为是只发出哔哔声。
我使用以下代码对编辑控件的窗口过程进行了子类化以覆盖默认行为:
LRESULT CALLBACK Gui::ItemIdInputProc( HWND hwnd, UINT message, WPARAM wParam,
LPARAM lParam ) {
switch ( message ) {
case WM_KEYDOWN :
switch ( wParam ) {
case VK_RETURN :
addNewItem();
return 0;
}
}
return CallWindowProc( oldItemIdInputProc_, hwnd, message, wParam, lParam );
}
这会导致与按下“确定”按钮相同的行为。
现在到手头的问题:这个窗口过程不会覆盖发出哔声的默认行为。我怀疑必须有一些其他消息或在按下 ENTER 时触发的消息,但我无法捕获;我只是不知道是哪个。我真的很想阻止设备发出哔哔声,因为它会在发生项目碰撞时弄乱在某些情况下播放的其他声音,并且提醒用户这一点至关重要。
提前致谢。