C ++とネイティブWINAPIを使用して(つまり、MFCなどを使用せずに)POCKET PC 2003(Windows CE 4.2)デバイスを対象としたアプリケーションを開発しています。その中には、メインウィンドウのどの部分(ダイアログではない)を1行で編集するコントロールがあります。したがって、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 );
}
これにより、「OK」ボタンを押すのと同じ動作が発生します。
ここで問題になります。このウィンドウ手順は、ビープ音を鳴らすデフォルトの動作を上書きしません。ENTERが押されたときにトリガーされ、キャプチャに失敗したメッセージが他にあるに違いないと思います。どちらかわからない。アイテムの衝突が発生したときに特定の状況で再生される他の音を台無しにするので、デバイスがビープ音を鳴らさないようにしたいのですが、ユーザーにそのことを警告することが重要です。
前もって感謝します。