之前有人问过,但我发现要么是 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 );
}
}