CListCtrl LVS_ICON ,想拖動一個圖示 到 另一個圖示前
但是 msdn 顯示 LVS_ICON 顯示順序 不按 index 順序 排列,
這造成了 我插入 拖動的圖示 到 滑鼠按鍵釋放位置的圖示前,
InsertItem(m_nDropIndex, item.pszText, item.iImage); 回傳是成功的,但是 顯示 卻不能正確顯示
如果 是 LVS_AUTOARRANGE 那就沒有變化,
如果不是 LVS_AUTOARRANGE 模式,那這個插入的圖片 被顯示到了 最后面。
請問CListCtrl 在 圖示模式 LVS_ICON 怎么解決 插入后 顯示排序問題? 它不按 index 排序,
uj5u.com熱心網友回復:
// this function drops an item from a CListCtrl to a CListCtrl
void CListCtrlView::DropItemOnList (CListCtrl* pDropList)
{
// unhilite the drop target
pDropList->SetItemState (m_nDropIndex, 0, LVIS_DROPHILITED);
char szLabel[256];
LV_ITEM lvi;
ZeroMemory (&lvi, sizeof (LV_ITEM));
lvi.iItem = m_nDragIndex;
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
lvi.pszText = szLabel;
lvi.cchTextMax = 255;
// get item that was dragged
VERIFY (m_List.GetItem (&lvi));
// insert item into CListCtrl
lvi.iItem = (m_nDropIndex == -1) ? pDropList->GetItemCount () : m_nDropIndex;
VERIFY (-1 != pDropList->InsertItem (&lvi));
// select the new item we just inserted
VERIFY (pDropList->SetItemState (lvi.iItem, LVIS_SELECTED, LVIS_SELECTED));
// delete the original item (move operation)
VERIFY (m_List.DeleteItem (m_nDragIndex));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/69999.html
標籤:界面
