MFC之CListCtrl
CListCtrl m_lstGame;
CImageList m_lstImage;
m_lstImage.Create(64, 64, ILC_COLOR | ILC_MASK, 5, 5);
m_lstImage.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
int nIndex = m_lstImage.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_lstGame.SetImageList(&m_lstImage, LVSIL_NORMAL);
m_lstImage.SetOverlayImage(nIndex, 1);
m_lstGame.InsertItem(i, vecGameList[i], 0);
void Cpatchhelper_mfcDlg::OnNMRclickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_lstGame.GetFirstSelectedItemPosition();
m_strSelectedGame = m_lstGame.GetItemText(m_lstGame.GetNextSelectedItem(pos), 0);
CMenu menu;
menu.LoadMenu(IDR_MENU1);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, LOWORD(GetMessagePos()), HIWORD(GetMessagePos()), this);
*pResult = 0;
}
LRESULT Cpatchhelper_mfcDlg::OnNewPatchArrived(WPARAM wParam, LPARAM lParam)
{
const vector<GamePatchRecord*>& vecGamePatch = m_pAgent->GetNewGamePatches();
if(vecGamePatch.size() > 0)
{
for (size_t i = 0; i < vecGamePatch.size(); i++)
{
map<CString, int>::const_iterator iter = m_mapGameToIndex.find(vecGamePatch[i]->GetGameName());
if(iter != m_mapGameToIndex.end())
m_lstGame.SetItemState(iter->second, INDEXTOOVERLAYMASK(1), LVIS_OVERLAYMASK);
}
}
return 0L;
}
m_lstResult.GetClientRect(rect);
m_lstResult.InsertColumn(0, _T("PatchName"), LVCFMT_LEFT, rect.Width()*0.7);
m_lstResult.InsertColumn(1, _T("Size"), LVCFMT_LEFT, rect.Width()*0.1);
m_lstResult.InsertColumn(2, _T("Date"), LVCFMT_LEFT, rect.Width()*0.2);
void ResultDlg::InsertItem(const CString& strPatchName, const CString& strSize, const CTime& tmDate)
{
m_lstResult.InsertItem(m_nCount, strPatchName);
m_lstResult.SetItemText(m_nCount, 1, strSize);
m_lstResult.SetItemText(m_nCount, 2, tmDate.Format(_T("%Y-%m-%d")));
m_nCount++;
}
MFC列表控件使用详解
3287

被折叠的 条评论
为什么被折叠?



