CBEM_SETITEMW done by example from SETITEMA, converted SETITEMA to use
it.
This commit is contained in:
parent
8fa0fb7505
commit
643fcffaac
|
@ -395,12 +395,11 @@ COMBOEX_SetImageList (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
return (LRESULT)himlTemp;
|
return (LRESULT)himlTemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static LRESULT
|
static LRESULT
|
||||||
COMBOEX_SetItemA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
COMBOEX_SetItemW (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
COMBOEX_INFO *infoPtr = COMBOEX_GetInfoPtr (hwnd);
|
COMBOEX_INFO *infoPtr = COMBOEX_GetInfoPtr (hwnd);
|
||||||
COMBOBOXEXITEMA *cit = (COMBOBOXEXITEMA *) lParam;
|
COMBOBOXEXITEMW *cit = (COMBOBOXEXITEMW *) lParam;
|
||||||
INT index;
|
INT index;
|
||||||
INT i;
|
INT i;
|
||||||
CBE_ITEMDATA *item;
|
CBE_ITEMDATA *item;
|
||||||
|
@ -430,15 +429,16 @@ COMBOEX_SetItemA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
/* add/change stuff to the internal item structure */
|
/* add/change stuff to the internal item structure */
|
||||||
item->mask |= cit->mask;
|
item->mask |= cit->mask;
|
||||||
if (cit->mask & CBEIF_TEXT) {
|
if (cit->mask & CBEIF_TEXT) {
|
||||||
LPSTR str;
|
LPWSTR str;
|
||||||
INT len;
|
INT len;
|
||||||
|
WCHAR emptystr[1] = {0};
|
||||||
|
|
||||||
str = cit->pszText;
|
str = cit->pszText;
|
||||||
if (!str) str="";
|
if (!str) str=emptystr;
|
||||||
len = MultiByteToWideChar (CP_ACP, 0, str, -1, NULL, 0);
|
len = strlenW(str);
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
item->pszText = (LPWSTR)COMCTL32_Alloc ((len + 1)*sizeof(WCHAR));
|
item->pszText = (LPWSTR)COMCTL32_Alloc ((len + 1)*sizeof(WCHAR));
|
||||||
MultiByteToWideChar (CP_ACP, 0, str, -1, item->pszText, len);
|
strcpyW(item->pszText,str);
|
||||||
}
|
}
|
||||||
item->cchTextMax = cit->cchTextMax;
|
item->cchTextMax = cit->cchTextMax;
|
||||||
}
|
}
|
||||||
|
@ -458,8 +458,33 @@ COMBOEX_SetItemA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static LRESULT
|
||||||
|
COMBOEX_SetItemA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
COMBOBOXEXITEMA *cit = (COMBOBOXEXITEMA *) lParam;
|
||||||
|
COMBOBOXEXITEMW citW;
|
||||||
|
LRESULT ret;
|
||||||
|
|
||||||
|
memcpy(&citW,cit,sizeof(COMBOBOXEXITEMA));
|
||||||
|
if (cit->mask & CBEIF_TEXT) {
|
||||||
|
LPSTR str;
|
||||||
|
INT len;
|
||||||
|
|
||||||
|
str = cit->pszText;
|
||||||
|
if (!str) str="";
|
||||||
|
len = MultiByteToWideChar (CP_ACP, 0, str, -1, NULL, 0);
|
||||||
|
if (len > 0) {
|
||||||
|
citW.pszText = (LPWSTR)COMCTL32_Alloc ((len + 1)*sizeof(WCHAR));
|
||||||
|
MultiByteToWideChar (CP_ACP, 0, str, -1, citW.pszText, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ret = COMBOEX_SetItemW(hwnd,wParam,(LPARAM)&citW);;
|
||||||
|
|
||||||
|
if (cit->mask & CBEIF_TEXT)
|
||||||
|
COMCTL32_Free(citW.pszText);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* << COMBOEX_SetItemW >> */
|
|
||||||
|
|
||||||
/* << COMBOEX_SetUniCodeFormat >> */
|
/* << COMBOEX_SetUniCodeFormat >> */
|
||||||
|
|
||||||
|
@ -842,8 +867,10 @@ COMBOEX_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
case CBEM_SETITEMA:
|
case CBEM_SETITEMA:
|
||||||
return COMBOEX_SetItemA (hwnd, wParam, lParam);
|
return COMBOEX_SetItemA (hwnd, wParam, lParam);
|
||||||
|
|
||||||
/* case CBEM_SETITEMW:
|
case CBEM_SETITEMW:
|
||||||
case CBEM_SETUNICODEFORMAT:
|
return COMBOEX_SetItemW (hwnd, wParam, lParam);
|
||||||
|
|
||||||
|
/* case CBEM_SETUNICODEFORMAT:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
case CB_DELETESTRING:
|
case CB_DELETESTRING:
|
||||||
|
|
Loading…
Reference in New Issue