EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo)
EVT_UPDATE_UI(wxID_CLEAR, wxTextCtrl::OnUpdateDelete)
EVT_UPDATE_UI(wxID_SELECTALL, wxTextCtrl::OnUpdateSelectAll)
-#ifdef __WIN16__
- EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
-#endif
EVT_SET_FOCUS(wxTextCtrl::OnSetFocus)
END_EVENT_TABLE()
};
DWORD CALLBACK
-wxRichEditStreamOut(DWORD dwCookie, BYTE *buf, LONG cb, LONG *pcb)
+wxRichEditStreamOut(DWORD_PTR dwCookie, BYTE *buf, LONG cb, LONG *pcb)
{
*pcb = 0;
{
HWND hWnd = GetHwnd();
-#ifdef __WIN32__
#if wxUSE_RICHEDIT
if ( IsRich() )
{
}
#endif // wxUSE_RICHEDIT
}
-#else // Win16
- // WPARAM is 0: selection is scrolled into view
- SendMessage(hWnd, EM_SETSEL, (WPARAM)0, (LPARAM)MAKELONG(from, to));
-#endif // Win32/16
}
// ----------------------------------------------------------------------------
event.Skip();
}
-long wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+WXLRESULT wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
{
- long lRc = wxTextCtrlBase::MSWWindowProc(nMsg, wParam, lParam);
+ WXLRESULT lRc = wxTextCtrlBase::MSWWindowProc(nMsg, wParam, lParam);
if ( nMsg == WM_GETDLGCODE )
{
return (WXHBRUSH)brush->GetResourceHandle();
}
-// In WIN16, need to override normal erasing because
-// Ctl3D doesn't use the wxWindows background colour.
-#ifdef __WIN16__
-void wxTextCtrl::OnEraseBackground(wxEraseEvent& event)
-{
- wxColour col(m_backgroundColour);
-
-#if wxUSE_CTL3D
- if (m_useCtl3D)
- col = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
-#endif
-
- RECT rect;
- ::GetClientRect(GetHwnd(), &rect);
-
- COLORREF ref = wxColourToRGB(col);
- HBRUSH hBrush = ::CreateSolidBrush(ref);
- if ( !hBrush )
- wxLogLastError(wxT("CreateSolidBrush"));
-
- HDC hdc = (HDC)event.GetDC()->GetHDC();
-
- int mode = ::SetMapMode(hdc, MM_TEXT);
-
- ::FillRect(hdc, &rect, hBrush);
- ::DeleteObject(hBrush);
- ::SetMapMode(hdc, mode);
-
-}
-#endif // Win16
-
bool wxTextCtrl::AdjustSpaceLimit()
{
-#ifndef __WIN16__
unsigned int limit = ::SendMessage(GetHwnd(), EM_GETLIMITTEXT, 0, 0);
// HACK: we try to automatically extend the limit for the amount of text
::SendMessage(GetHwnd(), EM_LIMITTEXT, limit, 0);
}
}
-#endif // !Win16
// we changed the limit
return TRUE;
int wText = DEFAULT_ITEM_WIDTH;
- int hText = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy);
+ int hText = cy;
if ( m_windowStyle & wxTE_MULTILINE )
{
hText *= wxMax(GetNumberOfLines(), 5);
}
//else: for single line control everything is ok
+ // we have to add the adjustments for the control height only once, not
+ // once per line, so do it after multiplication above
+ hText += EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy) - cy;
+
return wxSize(wText, hText);
}