]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
placeholder
[wxWidgets.git] / src / msw / textctrl.cpp
index 91ca4d8ce44e417c371b819746c9d2d31721be55..fa977a9896b4b65792aae54326fb12e010ecaac7 100644 (file)
@@ -688,7 +688,7 @@ struct wxStreamOutData
 };
 
 DWORD CALLBACK
-wxRichEditStreamOut(DWORD dwCookie, BYTE *buf, LONG cb, LONG *pcb)
+wxRichEditStreamOut(DWORD_PTR dwCookie, BYTE *buf, LONG cb, LONG *pcb)
 {
     *pcb = 0;
 
@@ -1728,9 +1728,9 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
     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 )
     {
@@ -1963,13 +1963,17 @@ wxSize wxTextCtrl::DoGetBestSize() const
 
     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);
 }