void CColorCmb::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your code to draw the specified item
CDC *pDC = CDC::FromHandle(lpDrawItemStruct ->hDC);
CColorData *pData = (CColorData *)(lpDrawItemStruct ->itemData);
ASSERT(pData);
CRect rc(lpDrawItemStruct->rcItem); if(lpDrawItemStruct ->itemID ==LB_ERR)
return;
if(lpDrawItemStruct->itemAction&(ODA_DRAWENTIRE | ODA_SELECT))
pData->DrawItem(pDC,rc,lpDrawItemStruct->itemState&ODS_SELECTED);
}请看第11行itemAction函数后面紧跟一个符号“&”,请问该怎么理解?
第12行也有一个“&”,又该如何理解呢?
菜鸟手头资料有限。请高手给个解释!谢谢。
{
// TODO: Add your code to draw the specified item
CDC *pDC = CDC::FromHandle(lpDrawItemStruct ->hDC);
CColorData *pData = (CColorData *)(lpDrawItemStruct ->itemData);
ASSERT(pData);
CRect rc(lpDrawItemStruct->rcItem); if(lpDrawItemStruct ->itemID ==LB_ERR)
return;
if(lpDrawItemStruct->itemAction&(ODA_DRAWENTIRE | ODA_SELECT))
pData->DrawItem(pDC,rc,lpDrawItemStruct->itemState&ODS_SELECTED);
}请看第11行itemAction函数后面紧跟一个符号“&”,请问该怎么理解?
第12行也有一个“&”,又该如何理解呢?
菜鸟手头资料有限。请高手给个解释!谢谢。
{ // 如果控件充许(ODA_DRAWENTIRE | ODA_SELECT)这两种动作中的任一种
pData->DrawItem(pDC,rc,lpDrawItemStruct->itemState&ODS_SELECTED);
// 在当前状态基础上再加上选中状态
}
意思是lpDrawItemStruct->itemState的值(对象状态吧?)
与ODS_SELECTED取与操作,相当于把其中的某些位设置为0