git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1970
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
case WM_KEYDOWN:
// If this has been processed by an event handler,
// return 0 now (we've handled it).
case WM_KEYDOWN:
// If this has been processed by an event handler,
// return 0 now (we've handled it).
- if (MSWOnKeyDown((WORD) wParam, lParam))
- {
- return 0;
- }
+ if ( MSWOnKeyDown((WORD) wParam, lParam) )
+ break;
// we consider these message "not interesting" to OnChar
if ( wParam == VK_SHIFT || wParam == VK_CONTROL )
// we consider these message "not interesting" to OnChar
if ( wParam == VK_SHIFT || wParam == VK_CONTROL )
- // Avoid duplicate messages to OnChar for these special keys
+ // avoid duplicate messages to OnChar for these ASCII keys: they
+ // will be translated by TranslateMessage() and received in WM_CHAR
case VK_ESCAPE:
case VK_SPACE:
case VK_RETURN:
case VK_BACK:
case VK_TAB:
case VK_ESCAPE:
case VK_SPACE:
case VK_RETURN:
case VK_BACK:
case VK_TAB:
- case VK_LEFT:
- case VK_RIGHT:
- case VK_DOWN:
- case VK_UP:
return Default();
#ifdef VK_APPS
return Default();
#ifdef VK_APPS
- // special case of VK_APPS: treat it the same as right mouse click
- // because both usually pop up a context menu
- case VK_APPS:
- {
+ // normally these macros would be defined in windows.h
-#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
-#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
+ #define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
+ #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
+ // special case of VK_APPS: treat it the same as right mouse click
+ // because both usually pop up a context menu
+ case VK_APPS:
+ {
// construct the key mask
WPARAM fwKeys = MK_RBUTTON;
if ( (::GetKeyState(VK_CONTROL) & 0x100) != 0 )
// construct the key mask
WPARAM fwKeys = MK_RBUTTON;
if ( (::GetKeyState(VK_CONTROL) & 0x100) != 0 )
+ case VK_LEFT:
+ case VK_RIGHT:
+ case VK_DOWN:
+ case VK_UP:
- if (!MSWOnChar((WORD)wParam, lParam))
+ if ( !MSWOnChar((WORD)wParam, lParam) )
{
return Default();
}
break;
}
{
return Default();
}
break;
}
- {
- if (!MSWOnKeyUp((WORD) wParam, lParam))
+ if ( !MSWOnKeyUp((WORD) wParam, lParam) )
case WM_CHAR: // Always an ASCII character
case WM_CHAR: // Always an ASCII character
- {
- if (!MSWOnChar((WORD)wParam, lParam, TRUE))
- return Default();
- break;
- }
+ if ( !MSWOnChar((WORD)wParam, lParam, TRUE) )
+ return Default();
+ break;
+
case WM_HSCROLL:
{
#ifdef __WIN32__
case WM_HSCROLL:
{
#ifdef __WIN32__
GetEventHandler()->ProcessEvent(event);
}
GetEventHandler()->ProcessEvent(event);
}
+// isASCII is TRUE only when we're called from WM_CHAR handler and not from
+// WM_KEYDOWN one
bool wxWindow::MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII)
{
int id;
bool wxWindow::MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII)
{
int id;
-bool wxWindow::MSWOnKeyDown(WXWORD wParam, WXLPARAM lParam, bool isASCII)
+bool wxWindow::MSWOnKeyDown(WXWORD wParam, WXLPARAM lParam)
-bool wxWindow::MSWOnKeyUp(WXWORD wParam, WXLPARAM lParam, bool isASCII)
+bool wxWindow::MSWOnKeyUp(WXWORD wParam, WXLPARAM lParam)