一、LVN_ITEMCHANGED 消息会响应三次,若函数中包含数据库操作,请添加条件判断排除其中的两次响应。
void C*Dlg::OnLvnItemchangedList*(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
*pResult = 0;
if(pNMLV->uChanged == LVIF_STATE &&(pNMLV->uNewState & LVIS_SELECTED))
{
//add func
}
}
二、NM_CUSTOMDRAW 消息用来修改控件绘制,修改背景色和字体颜色
void C*Dlg::OnNMCustomdrawList*(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
*pResult = CDRF_DODEFAULT;
if(CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage)
{
*pResult = CDRF_NOTIFYITEMDR