Applied better/Win98-proof method of getting edit window
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
2d512c47df
commit
e558f9533e
@ -443,16 +443,32 @@ WXHWND wxComboBox::GetEditHWNDIfAvailable() const
|
||||
// to keep one version of the code for all platforms and fix it later if
|
||||
// problems are discovered
|
||||
|
||||
#ifndef __WXWINCE__
|
||||
COMBOBOXINFO info;
|
||||
info.cbSize = sizeof(COMBOBOXINFO);
|
||||
typedef BOOL (WINAPI *GetComboBoxInfo_t)(HWND, COMBOBOXINFO*);
|
||||
static GetComboBoxInfo_t s_pfnGetComboBoxInfo = NULL;
|
||||
static bool s_triedToLoad = false;
|
||||
if ( !s_triedToLoad )
|
||||
{
|
||||
s_triedToLoad = true;
|
||||
wxLoadedDLL dllUser32("user32.dll");
|
||||
wxDL_INIT_FUNC(s_pfn, GetComboBoxInfo, dllUser32);
|
||||
}
|
||||
|
||||
if ( s_pfnGetComboBoxInfo )
|
||||
{
|
||||
WinStruct<COMBOBOXINFO> info;
|
||||
(*s_pfnGetComboBoxInfo)(GetHwnd(), &info);
|
||||
return info.hwndItem;
|
||||
}
|
||||
|
||||
if (HasFlag(wxCB_SIMPLE))
|
||||
{
|
||||
POINT pt;
|
||||
pt.x = pt.y = 4;
|
||||
return (WXHWND) ::ChildWindowFromPoint(GetHwnd(), pt);
|
||||
}
|
||||
|
||||
GetComboBoxInfo(GetHwnd(), & info);
|
||||
return info.hwndItem;
|
||||
#else
|
||||
// we assume that the only child of the combobox is the edit window
|
||||
return (WXHWND)::GetWindow(GetHwnd(), GW_CHILD);
|
||||
#endif
|
||||
}
|
||||
|
||||
WXHWND wxComboBox::GetEditHWND() const
|
||||
|
Loading…
Reference in New Issue
Block a user