Set margins on creation correctly for wxTE_RICH[2] wxTextCtrl in wxMSW.

In spite of the MSDN documentation, EC_USEFONTINFO can't be used in lParam
with rich edit controls, so pass it in wParam for them.

Closes #14598.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2013-01-20 02:08:59 +00:00
parent 0b97da9986
commit 22f1466595

View File

@@ -511,9 +511,23 @@ bool wxTextCtrl::MSWCreateText(const wxString& value,
// classic mode, i.e. without themes. Also, the margin can be reset to
// 0 easily by calling SetMargins() explicitly but setting it to the
// default value is not currently supported.
::SendMessage(GetHwnd(), EM_SETMARGINS,
EC_LEFTMARGIN | EC_RIGHTMARGIN,
MAKELPARAM(EC_USEFONTINFO, EC_USEFONTINFO));
//
// Finally, notice that EC_USEFONTINFO is used differently for plain
// and rich text controls.
WPARAM wParam;
LPARAM lParam;
if ( IsRich() )
{
wParam = EC_USEFONTINFO;
lParam = 0;
}
else // plain EDIT, EC_USEFONTINFO is used in lParam with them.
{
wParam = EC_LEFTMARGIN | EC_RIGHTMARGIN;
lParam = MAKELPARAM(EC_USEFONTINFO, EC_USEFONTINFO);
}
::SendMessage(GetHwnd(), EM_SETMARGINS, wParam, lParam);
}
#endif // !__WXWINCE__