我做了个 List Control ,我希望在选择另一个item前,提示用户是否需要保存当前选择的item,如果选择的是Cancel那么还要选中旧的,但现在就是新旧两个都选中了
m_ListVmfPackage.SetItemState(m_ListOldSelected,0,LVIS_FOCUSED);
m_ListVmfPackage.SetItemState(m_ListOldSelected,LVIS_SELECTED,LVIS_SELECTED);
return;
m_ListVmfPackage.SetItemState(m_ListOldSelected,0,LVIS_FOCUSED);
m_ListVmfPackage.SetItemState(m_ListOldSelected,LVIS_SELECTED,LVIS_SELECTED);
return;
void CGenericCameraVmfPropertyPage::OnItemChangedVmfPackageList(NMHDR *pNMHDR, LRESULT *pResult)
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if (pNMListView->uChanged == 8 && pNMListView->uOldState == 1)
{
if (IsDirty())
{
switch(PromptForSave())
{
case GTK_RESPONSE_YES:
SaveData();
break;
case GTK_RESPONSE_CANCEL:
m_IsListChanged = true;
m_ListOldSelected = pNMListView->iItem;
return;
break;
default:
break;
}
}
} //if (pNMListView->uChanged == 8 && pNMListView->uOldState == 2 && m_IsListChanged == true)
//{
// m_ListVmfPackage.SetItemState(m_ListOldSelected,0,LVIS_FOCUSED);
// m_ListVmfPackage.SetItemState(m_ListOldSelected,LVIS_SELECTED,LVIS_SELECTED);
// return;
//}
if(pNMListView->uChanged == 8 && pNMListView->uNewState == 3 && m_IsListChanged == true)
{
m_ListVmfPackage.SetItemState(m_ListOldSelected,0,LVIS_FOCUSED);
m_ListVmfPackage.SetItemState(m_ListOldSelected,LVIS_SELECTED,LVIS_SELECTED);
m_IsListChanged = false;
return;
}