0
它被問過,但我發現無論是MFC,或者是不是一個superclassed控制,或者也許我的關鍵字的選擇並不好(我的詞彙量是有限的)丁聲superclassed編輯控件 - WINAPI - windows7的
我正在用DevC++開發純win32和C++。我有一些Edit控件超類,其中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);
}
}
我試過(出於不同的原因),但它並不總是工作,例如按* control *鍵和* tab *。 * wParam *不同於* VK_TAB *! * WM_KEYDOWN *涵蓋所有情況 –