MFCリストコントロールCListCtrlの使い方の例
CList Ctrlは選択された行を取得します。
1.ヘッダファイルに変数m_を追加します。nSelItem
手動でコードを追加すると以下の通りです。
ヘッダファイルに宣言を追加
afx_msg void ONM Killfocus List(NMHDR*pNMHDR、LRESULT*pResoult);
afx_msg void ONMSetfocus List(NMHDR*pNMHDR、LRESULT*pResoult);
ソースファイルにマップを追加
ONするNOTIFY(NM_KILLFOCUS、IDC_LISTCTRL,ONMKillfocus List)
ONするNOTIFY(NM_SETFOCUS、IDC_LISTCTRL,ONMSetfocus List)
ソースファイルに関数を追加
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
POSITION ps = m_list.GetFirstSelectedItemPosition();
int nSel = m_list.GetNextSelectedItem(ps);// (based 0)
//
if(m_list.GetSelectedCount() <1)
return;
int nSel = m_list.GetSelectionMark();
CListCtrlコントロールがフォーカスを失った時もハイライトを維持します。1.ヘッダファイルに変数m_を追加します。nSelItem
int m_nSelItem;
2.ListCtrlコントロールにNM_を追加するKILLFOCUS(焦点を失う)とNM_SETFOCUSメッセージ手動でコードを追加すると以下の通りです。
ヘッダファイルに宣言を追加
afx_msg void ONM Killfocus List(NMHDR*pNMHDR、LRESULT*pResoult);
afx_msg void ONMSetfocus List(NMHDR*pNMHDR、LRESULT*pResoult);
ソースファイルにマップを追加
ONするNOTIFY(NM_KILLFOCUS、IDC_LISTCTRL,ONMKillfocus List)
ONするNOTIFY(NM_SETFOCUS、IDC_LISTCTRL,ONMSetfocus List)
ソースファイルに関数を追加
void CPageListView::OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO:
m_nSelItem = m_ListCtrl.GetSelectionMark();
m_ListCtrl.SetItemState(m_nSelItem, LVIS_DROPHILITED, LVIS_DROPHILITED);
*pResult = 0;
}
void CPageListView::OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO:
m_ListCtrl.SetItemState(m_nSelItem, FALSE, LVIF_STATE);
*pResult = 0;
}
注意:Always Show Selection属性は必ずFALSEに設定してください。以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。