-
行を選択します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