//在工具栏添加组合框
m_myBar.m_combobox.Create(
            WS_VISIBLE | WS_CHILD | WS_BORDER | CBS_DROPDOWN|CBS_OWNERDRAWFIXED,
cmbRect,&m_myBar,ID_ZERO_ITEM
)
//colorItems数组存储颜色值,
DWORD colorItems[] = {
0x00CBC0FF, 0x0000FFFF, 0x00000000, 0x00008000,
0x00FF0000, 0x00808080, 0x00A9A9A9, 0x00FFFF00,
0x000000FF, 0x00FFFFFF, 0x00D3D3D3, 0x00FF00FF,0x0000A5FF};
//想实现的效果是组合框的每一项用某一颜色值填充
void COwnComboBox::DrawItem(LPDRAWITEMSTRUCT lpDIS) 
{
// TODO: Add your message handler code here and/or call default
CDC dc;
dc.Attach(lpDIS->hDC);

if ((lpDIS->itemState & ODS_SELECTED) 
&& (lpDIS->itemAction & (ODA_SELECT | ODA_DRAWENTIRE))) 
{
CBrush clrBsh;
clrBsh.CreateSolidBrush(colorItems[lpDIS->itemID]);
dc.FillRect(&lpDIS->rcItem,&clrBsh);
clrBsh.DeleteObject();
}
else{
// De-Selected
// if (!(lpDIS->itemState & ODS_SELECTED) 
// && (lpDIS->itemAction & (ODA_SELECT | ODA_DRAWENTIRE))) {
CBrush clrBsh;
clrBsh.CreateSolidBrush(colorItems[lpDIS->itemID]);
dc.FillRect(&lpDIS->rcItem,&clrBsh);
clrBsh.DeleteObject();

}

    // Focus
if (lpDIS->itemAction & ODA_FOCUS)  { 
dc.DrawFocusRect(&lpDIS->rcItem);
}
Invalidate(true);
   /* CComboBox::OnDrawItem(nIDCtl, lpDIS);*/
}
调试时发现每一项都有绘制,
可是只看到第一项绘制的效果,其他项都没看到绘制效果,知不知道哪里出错了?