if ( !CreateControl(parent, id, pos, size, style, validator, name) )
return FALSE;
- long msStyle = WS_CHILD | CBS_DROPDOWNLIST | WS_TABSTOP | WS_VISIBLE;
+ long msStyle = WS_CHILD | CBS_DROPDOWNLIST | WS_TABSTOP | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL;
if ( style & wxCB_SORT )
msStyle |= CBS_SORT;
wxString wxChoice::GetString(int n) const
{
size_t len = (size_t)::SendMessage(GetHwnd(), CB_GETLBTEXTLEN, n, 0);
- wxString str;
- if ( ::SendMessage(GetHwnd(), CB_GETLBTEXT, n,
- (LPARAM)str.GetWriteBuf(len)) == CB_ERR )
- {
- wxLogLastError("SendMessage(CB_GETLBTEXT)");
+ wxString str = "";
+ if (len) {
+ if ( ::SendMessage(GetHwnd(), CB_GETLBTEXT, n,
+ (LPARAM)str.GetWriteBuf(len)) == CB_ERR ) {
+ wxLogLastError("SendMessage(CB_GETLBTEXT)");
+ }
+ str.UngetWriteBuf();
}
- str.UngetWriteBuf();
-
return str;
}
wxLogLastError(_T("CB_GETITEMDATA"));
// unfortunately, there is no way to return an error code to the user
- rc = NULL;
+ rc = (LPARAM) NULL;
}
return (void *)rc;