attempts to fix virtual list control with Unicode and MSLU
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
0376ed5408
commit
fa17ced1b5
@ -2145,6 +2145,10 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// when using MSLU we get ANSI messages sometimes, apparently
|
||||||
|
#if wxUSE_UNICODE_MSLU
|
||||||
|
case LVN_GETDISPINFOA:
|
||||||
|
#endif // wxUSE_UNICODE_MSLU
|
||||||
case LVN_GETDISPINFO:
|
case LVN_GETDISPINFO:
|
||||||
if ( IsVirtual() )
|
if ( IsVirtual() )
|
||||||
{
|
{
|
||||||
@ -2156,7 +2160,29 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
if ( lvi.mask & LVIF_TEXT )
|
if ( lvi.mask & LVIF_TEXT )
|
||||||
{
|
{
|
||||||
wxString text = OnGetItemText(item, lvi.iSubItem);
|
wxString text = OnGetItemText(item, lvi.iSubItem);
|
||||||
wxStrncpy(lvi.pszText, text, lvi.cchTextMax);
|
#if wxUSE_UNICODE_MSLU
|
||||||
|
if ( nmhdr->code == LVN_GETDISPINFOA )
|
||||||
|
{
|
||||||
|
if ( !::WideCharToMultiByte
|
||||||
|
(
|
||||||
|
CP_ACP,
|
||||||
|
0, // no flags
|
||||||
|
text,
|
||||||
|
text.length() + 1,
|
||||||
|
(char *)lvi.pszText,
|
||||||
|
lvi.cchTextMax,
|
||||||
|
NULL, // default character
|
||||||
|
NULL // [out] def char used flag
|
||||||
|
) )
|
||||||
|
{
|
||||||
|
wxLogLastError(_T("WideCharToMultiByte()"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif // wxUSE_UNICODE_MSLU
|
||||||
|
{
|
||||||
|
wxStrncpy(lvi.pszText, text, lvi.cchTextMax);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// see comment at the end of wxListCtrl::GetColumn()
|
// see comment at the end of wxListCtrl::GetColumn()
|
||||||
|
Loading…
Reference in New Issue
Block a user