::ScrollWindow(GetHwnd(), dx, dy, prect ? &rect : NULL, NULL);
}
+static void ScrollVertically(HWND hwnd, int kind, int count)
+{
+ for ( int n = 0; n < count; n++ )
+ {
+ ::SendMessage(hwnd, WM_VSCROLL, kind, 0);
+ }
+}
+
+void wxWindowMSW::ScrollLines(int lines)
+{
+ bool down = lines > 0;
+
+ ScrollVertically(GetHwnd(),
+ down ? SB_LINEDOWN : SB_LINEUP,
+ down ? lines : -lines);
+}
+
+void wxWindowMSW::ScrollPages(int pages)
+{
+ bool down = pages > 0;
+
+ ScrollVertically(GetHwnd(),
+ down ? SB_PAGEDOWN : SB_PAGEUP,
+ down ? pages : -pages);
+}
+
// ---------------------------------------------------------------------------
// subclassing
// ---------------------------------------------------------------------------
dc.Clear();
}
+static inline void SendSetRedraw(HWND hwnd, bool on)
+{
+ ::SendMessage(hwnd, WM_SETREDRAW, (WPARAM)on, 0);
+}
+
+void wxWindowMSW::Freeze()
+{
+ SendSetRedraw(GetHwnd(), FALSE);
+}
+
+void wxWindowMSW::Thaw()
+{
+ SendSetRedraw(GetHwnd(), TRUE);
+
+ // we need to refresh everything or otherwise he invalidated area is not
+ // repainted
+ Refresh();
+}
+
void wxWindowMSW::Refresh(bool eraseBack, const wxRect *rect)
{
HWND hWnd = GetHwnd();
case VK_NUMPAD8: id = WXK_NUMPAD8; break;
case VK_NUMPAD9: id = WXK_NUMPAD9; break;
case VK_MULTIPLY: id = WXK_NUMPAD_MULTIPLY; break;
- case 0xBB: id = WXK_NUMPAD_ADD; break; // VK_OEM_PLUS
case VK_ADD: id = WXK_NUMPAD_ADD; break;
- case 0xBD: id = WXK_NUMPAD_SUBTRACT; break; // VK_OEM_MINUS
case VK_SUBTRACT: id = WXK_NUMPAD_SUBTRACT; break;
- case 0xBE: id = WXK_NUMPAD_DECIMAL; break; // VK_OEM_PERIOD
case VK_DECIMAL: id = WXK_NUMPAD_DECIMAL; break;
case VK_DIVIDE: id = WXK_NUMPAD_DIVIDE; break;
case VK_F1: id = WXK_F1; break;