以前に尋ねられましたが、私が見つけたのはmfcであるか、スーパークラスのコントロール用ではなかったか、キーワードの選択が適切ではなかった可能性があります(私の語彙は限られています)
Devc++ で純粋な win32 と c++ で開発しています。Tab キーの押下と Return キーの押下を制御するスーパークラス化された編集コントロールがいくつかありますが、Tab を押すたびに、非常に迷惑なこの Ding サウンドが発生します。とにかく、どうすれば削除できますか?
これは私の最初のスーパークラス化の試みです。コードに関して他にアドバイスがあれば教えてください。
コード:
LRESULT APIENTRY EditSuperClassWndProc ( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
switch (message)
{
case WM_KEYDOWN:
if ( isMyScreen )
{
if ( (int)wParam == VK_RETURN )
{
DWORD wparam = MAKELONG( 0, BN_CLICKED );
SendMessage( GetParent( hwnd ), WM_COMMAND, (WPARAM)wparam, (LPARAM)hButton );
}
else if ( (int)wParam == VK_TAB )
{
HWND nextInLine;
if( hwnd == hEditP )
nextInLine = hEditL;
else if ( hwnd == hEditL )
nextInLine = hEditP;
SendMessage( nextInLine, EM_SETSEL, (WPARAM)0, (LPARAM)-1 );
SetFocus( nextInLine );
}
else
{
return CallWindowProc( oldWndProc, hwnd, message, wParam, lParam );
}
}
return CallWindowProc( oldWndProc, hwnd, message, wParam, lParam );
break;
default:
return CallWindowProc( oldWndProc, hwnd, message, wParam, lParam );
}
}