http://bugs.winehq.org/show_bug.cgi?id=8916
Summary: COMBOBOX editor stops working Product: Wine Version: 0.9.40. Platform: Other OS/Version: other Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-user AssignedTo: wine-bugs@winehq.org ReportedBy: dmda@yandex.ru
with the code below combobox stops working and whatever I set to it using SetWindowTextW, it displays only the 1st character.
ComboHandle = CreateWindowExW(0, L"COMBOBOX", 0, 0x44210242, 55, 30, 190, 21, ParentWnd, 0, HInstance, 0); ShowWindow(ComboHandle, SW_NORMAL);
// 3rd party library begins: EditHandle = GetWindow(ComboHandle, GW_CHILD); DefEditProc = GetWindowLongA(EditHandle, GWL_WNDPROC); SetWindowLongA(EditHandle, GWL_WNDPROC, DefEditProc); // 3rd party library end. SetWindowLongW(EditHandle, GWL_WNDPROC, GetWindowLong(EditHandle, GWL_WNDPROC)); // this call is a fixup to trigger EditHandle into unicode and it works for me under Windows.
... SetWindowTextW(ComboHandle, L"Any Text"); // will display only "A"
I know that it's not that correct code but works FINE under Windows. Looks like DefEditProc = GetWindowLongA(EditHandle, GWL_WNDPROC); is problematic because if I change GetWindowLongA to GetWindowLongW it gets to work under Wine too but unfortunately, I can't change this pience of code because it is from 3rd party and comes pre-compiled.