void OptionsComboboxDrawItem(LPARAM lparam)
{
int i, color[3];
char str[256];
RECT rc;
COLORREF colorwhite, colorblack, colorblue, colorcurr;
HBRUSH hbrush[2];
LPDRAWITEMSTRUCT item;
item = (LPDRAWITEMSTRUCT) lparam;
colorwhite = RGB(255, 255, 255);
colorblack = RGB( 0, 0, 0);
colorblue = RGB(GetRValue(GetSysColor(COLOR_HIGHLIGHT)), GetGValue(GetSysColor(COLOR_HIGHLIGHT)), GetBValue(GetSysColor(COLOR_HIGHLIGHT)));
colorcurr = RGB(255, 255, 255);
hbrush[0] = CreateSolidBrush(colorwhite);
hbrush[1] = CreateSolidBrush(colorblue);
SetBkColor(item->hDC, colorwhite);
FillRect(item->hDC, &item->rcItem, hbrush[0]);
SetTextColor(item->hDC, colorblack);
if (item->itemState & ODS_FOCUS)
{
SetBkColor(item->hDC, colorblue);
FillRect(item->hDC, &item->rcItem, hbrush[1]);
SetTextColor(item->hDC, colorwhite);
}
rc.bottom = item->rcItem.bottom - 2;
rc.left = item->rcItem.left + 2;
rc.right = item->rcItem.left + 2 + 15;
rc.top = item->rcItem.top + 2;
DataColor((item->itemID), color, str);
colorcurr = RGB(color[0], color[1], color[2]);
FillRect(item->hDC, &rc, CreateSolidBrush(colorcurr));
FrameRect(item->hDC, &rc, CreateSolidBrush(colorblack));
TextOut(item->hDC, item->rcItem.left+2+25, item->rcItem.top, str, strlen (str));
if (item->itemState & ODS_FOCUS)
{
DrawFocusRect(item->hDC, &item->rcItem);
}
for (i=0; i<2; i++)
{
DeleteObject(hbrush[i]);
}
}
void OptionsComboboxMeasureItem(LPARAM lparam)
{
PMEASUREITEMSTRUCT item;
item = (PMEASUREITEMSTRUCT) lparam;
item->itemHeight = 15;
}