リストコントロールMFC CListCtrlの

  • 行を選択しますCListCtrlの

PS POSITIONの= m_list.GetFirstSelectedItemPosition();
 int型 NSEL = m_list.GetNextSelectedItem(PS); // 選択された行のインデックス(ベース0)

// または
IF(m_list.GetSelectedCount()< 1 リターン;
 INT NSEL = m_list .GetSelectionMark()。

 

  • フォーカスを失ったときにCListCtrlの制御遺跡が強調表示しました

1.可変ヘッダファイルm_nSelItem追加

INT m_nSelItemと、

2 ListCtrl制御NM_KILLFOCUS(フォーカスを失う)とNM_SETFOCUS(得られる焦点)メッセージが追加され

、手動で次のようにコードを追加します

、ヘッダーファイルをステートメントを追加
    ボイドOnNMKillfocusList AFX_MSG(NMHDR * pNMHDR、 LRESULT * PRESULTを);
    AFX_MSG OnNMSetfocusList無効(* pNMHDR NMHDR、LRESULT PRESULT *);

ソースファイル、マッピングを追加

    ON_NOTIFY(NM_KILLFOCUS、IDC_LISTCTRL、OnNMKillfocusList)
    ON_NOTIFY(NM_SETFOCUS、IDC_LISTCTRL、OnNMSetfocusList)

ソースファイル、関数の追加

ボイドCPageListViewを:: OnNMKillfocusList(NMHDR * pNMHDR 、LRESULT PRESULT *)
{
    // TODO:この添加コントロール通知ハンドラコード内
    m_nSelItem m_ListCtrl.GetSelectionMark =();
    m_ListCtrl.SetItemState(m_nSelItem、LVIS_DROPHILITED、LVIS_DROPHILITED);

    * PRESULT = 0;
}

:: OnNMSetfocusList CPageListViewボイド(* pNMHDR NMHDR、LRESULT PRESULT *)
{
    // TODO:この添加コントロール通知ハンドラコードで
    m_ListCtrl.SetItemState(m_nSelItem、FALSE、LVIF_STATE);

    * PRESULT = 0;
}

注:常に表示する選択属性FALSEに設定する必要があります


----------------
オリジナルリンクします。https://blog.csdn.net/guoxiaobo2010/article/details/21730955

 

おすすめ

転載: www.cnblogs.com/htj10/p/11705231.html