More Related Content More from Razvan Raducanu, PhD (20) MFC List12. Add the folowing variables:
Ctrl ID Var name Category Var type
IDC_COMBO1 m_ctrlCombo Control CComboBox
m_strCombo Value CString
IDC_LIST1 m_ctrlList Control CListCtrl
13. In ListDlg.h add:
…………
// Implementation
protected:
HICON m_hIcon;
CImageList m_imageLarge;
CImageList m_imageSmall;
………………………………….
14. Initialize the var in CListDlg::OnInitDialog()
……………….
// TODO: Add extra initialization here
m_ctrlCombo.AddString("Icon");
m_ctrlCombo.AddString("Small");
m_ctrlCombo.AddString("List");
m_ctrlCombo.AddString("Report");
m_imageLarge.Create(
IDB_BITMAP1, 32, 1, RGB(255, 255, 255));
m_imageSmall.Create(
IDB_BITMAP2, 16, 1, RGB(255, 255, 255));
m_ctrlList.SetImageList(&m_imageLarge,LVSIL_NORMAL);
m_ctrlList.SetImageList(&m_imageSmall,LVSIL_SMALL);
15. // Create list view columns
LV_COLUMN listColumn;
char* arColumns[3] = { "Orase", "Universitati", "Simboluri" };
listColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT |
LVCF_SUBITEM;
listColumn.fmt = LVCFMT_LEFT;
listColumn.cx = 60;
for (int nColumn = 0; nColumn < 3; nColumn++)
{
listColumn.iSubItem = nColumn;
listColumn.pszText = arColumns[nColumn];
m_ctrlList.InsertColumn(nColumn, &listColumn);
}
16. // Add list items
LV_ITEM listItem;
listItem.mask = LVIF_TEXT | LVIF_IMAGE;
listItem.iSubItem = 0;
char* arOrase[3] = { "Iasi", "Bucuresti", "Cluj" };
char* arUniversitati[3] = { "Al.I.Cuza", "Bucuresti", "Babes Bolay" };
char* arSimboluri[3] = { "Palatul Culturii", "Casa Poporului", "Universitatea" };
for (int nItem = 0; nItem < 3; nItem++)
{
listItem.iItem = nItem;
listItem.pszText = arOrase[nItem];
listItem.iImage = nItem % 2;
m_ctrlList.InsertItem(&listItem);
m_ctrlList.SetItemText(nItem, 1, arUniversitati[nItem]);
m_ctrlList.SetItemText(nItem, 2, arSimboluri[nItem]);
}
SetListView(LVS_REPORT);
m_ctrlCombo.SetCurSel(2);
return TRUE; // return TRUE unless you set the focus to a control
}
21. void CListDlg::SetListView(DWORD dwNewStyle)
{
// TODO: Add your implementation code here.
DWORD dwOldStyle;
HWND hWndList;
hWndList = m_ctrlList.GetSafeHwnd();
dwOldStyle = GetWindowLong(hWndList,GWL_STYLE);
if ((dwOldStyle & LVS_TYPEMASK) !=dwNewStyle)
{
dwOldStyle &= ~LVS_TYPEMASK;
dwNewStyle |= dwOldStyle;
SetWindowLong(hWndList, GWL_STYLE,dwNewStyle);
}
}
25. void CListDlg::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
m_ctrlCombo.GetLBText(
m_ctrlCombo.GetCurSel(), m_strCombo);
CString str = m_strCombo;
str.MakeUpper();
if (str == "ICON") SetListView(LVS_ICON);
else if (str == "REPORT")
SetListView(LVS_REPORT);
else if (str == "LIST") SetListView(LVS_LIST);
else if (str == "SMALL")
SetListView(LVS_SMALLICON);
}