X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3eddf563edad7403f84906650506370f4f7dedb2..68ad65f8569c6fef3a3fb906becaaf161c77fb85:/src/msw/window.cpp diff --git a/src/msw/window.cpp b/src/msw/window.cpp index a3e3a9d727..404ae402a7 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -59,6 +59,8 @@ #include "wx/msw/private.h" +#include "wx/textctrl.h" + #include #ifndef __GNUWIN32__ @@ -234,6 +236,7 @@ void wxWindow::Init() m_isWindow = TRUE; // Generic +// m_windowCursor = * wxSTANDARD_CURSOR; m_windowId = 0; m_isShown = TRUE; m_windowStyle = 0; @@ -938,7 +941,7 @@ LRESULT APIENTRY _EXPORT wxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA #define DIMENSION_TYPE int #endif -// Main Windows 3 window proc +// Main Windows window proc long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) { wxASSERT( m_lastMsg == message && @@ -1176,6 +1179,7 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) return MSWOnSysCommand(wParam, lParam); break; } + case WM_COMMAND: { #ifdef __WIN32__ @@ -1227,7 +1231,6 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) return MSWOnMeasureItem((int)wParam, (WXMEASUREITEMSTRUCT *)lParam); break; } - case WM_KEYDOWN: // If this has been processed by an event handler, // return 0 now (we've handled it). @@ -1261,6 +1264,12 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) // because both usually pop up a context menu case VK_APPS: { + +#ifndef GET_X_LPARAM +#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp)) +#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp)) +#endif + // construct the key mask WPARAM fwKeys = MK_RBUTTON; if ( (::GetKeyState(VK_CONTROL) & 0x100) != 0 ) @@ -1288,7 +1297,6 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) } break; - case WM_KEYUP: { if (!MSWOnKeyUp((WORD) wParam, lParam)) @@ -1301,7 +1309,6 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) return Default(); break; } - case WM_HSCROLL: { #ifdef __WIN32__ @@ -1479,7 +1486,6 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) return 1L; break; } - case WM_GETMINMAXINFO: { MINMAXINFO *info = (MINMAXINFO *)lParam; @@ -1494,10 +1500,10 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) return MSWDefWindowProc(message, wParam, lParam ); break; } - case WM_GETDLGCODE: - return MSWGetDlgCode(); - + { + return MSWGetDlgCode(); + } case WM_SETCURSOR: { // don't set cursor for other windows, only for this one: this @@ -1551,7 +1557,6 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) } } } - return MSWDefWindowProc(message, wParam, lParam ); default: @@ -2147,6 +2152,7 @@ bool wxWindow::MSWProcessMessage(WXMSG* pMsg) if ( ::IsDialogMessage((HWND)GetHWND(), msg) ) return TRUE; } + #if wxUSE_TOOLTIPS if ( m_tooltip ) { @@ -2157,6 +2163,19 @@ bool wxWindow::MSWProcessMessage(WXMSG* pMsg) } #endif // wxUSE_TOOLTIPS +/* This code manages to disable character input completely. Nice one! + * Probably because the dialog is requesting all char input. Or, + * it gets called by non-dialog windows. + + // In case we don't have wxTAB_TRAVERSAL style on. + // If we don't call this, we may never process Enter correctly. + if ( m_hWnd != 0 && (GetWindowStyleFlag() & wxTAB_TRAVERSAL) == 0 ) + { + MSG *msg = (MSG *)pMsg; + if ( ::IsDialogMessage((HWND)GetHWND(), msg) ) + return TRUE; + } +*/ return FALSE; }