// longer, check for it to avoid bogus assert failures
if ( !win->IsBeingDeleted() )
{
- wxFAIL_MSG( _T("should have combo as parent") );
+ wxFAIL_MSG( wxT("should have combo as parent") );
}
}
else if ( combo->MSWProcessEditMsg(message, wParam, lParam) )
case WM_GETDLGCODE:
{
- wxCHECK_MSG( win, 0, _T("should have a parent") );
+ wxCHECK_MSG( win, 0, wxT("should have a parent") );
if ( win->GetWindowStyle() & wxTE_PROCESS_ENTER )
{
// to keep one version of the code for all platforms and fix it later if
// problems are discovered
+ 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);
+ }
+
// we assume that the only child of the combobox is the edit window
return (WXHWND)::GetWindow(GetHwnd(), GW_CHILD);
}
// this function should not be called for wxCB_READONLY controls, it is
// the callers responsibility to check this
wxASSERT_MSG( !HasFlag(wxCB_READONLY),
- _T("read-only combobox doesn't have any edit control") );
+ wxT("read-only combobox doesn't have any edit control") );
WXHWND hWndEdit = GetEditHWNDIfAvailable();
- wxASSERT_MSG( hWndEdit, _T("combobox without edit control?") );
+ wxASSERT_MSG( hWndEdit, wxT("combobox without edit control?") );
return hWndEdit;
}
wxWindow *wxComboBox::GetEditableWindow()
{
wxASSERT_MSG( !HasFlag(wxCB_READONLY),
- _T("read-only combobox doesn't have any edit control") );
+ wxT("read-only combobox doesn't have any edit control") );
return this;
}