Mercurial > dwindows
changeset 351:84a24d739d12
Make dw_listbox_query_text() work on comboboxes on Windows.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 16 Apr 2003 12:00:00 +0000 |
parents | 2216e65ad2ae |
children | feed7567764f |
files | win/dw.c |
diffstat | 1 files changed, 26 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/win/dw.c Mon Apr 14 13:47:20 2003 +0000 +++ b/win/dw.c Wed Apr 16 12:00:00 2003 +0000 @@ -5174,8 +5174,32 @@ */ void API dw_listbox_query_text(HWND handle, unsigned int index, char *buffer, unsigned int length) { - SendMessage(handle, - LB_GETTEXT, (WPARAM)index, (LPARAM)buffer); + char tmpbuf[100]; + int len; + + if(!buffer || !length) + return; + + buffer[0] = 0; + + GetClassName(handle, tmpbuf, 99); + + if(strnicmp(tmpbuf, COMBOBOXCLASSNAME, strlen(COMBOBOXCLASSNAME))==0) + { + len = (int)SendMessage(handle, CB_GETLBTEXTLEN, (WPARAM)index, 0); + + if(len < length && len != CB_ERR) + SendMessage(handle, + CB_GETLBTEXT, (WPARAM)index, (LPARAM)buffer); + } + else + { + len = (int)SendMessage(handle, LB_GETTEXTLEN, (WPARAM)index, 0); + + if(len < length && len != LB_ERR) + SendMessage(handle, + LB_GETTEXT, (WPARAM)index, (LPARAM)buffer); + } } /*