class CListDlg : public CDialog
{
// Construction
public:
CListDlg(CWnd* pParent = NULL); // standard constructor
CImageList m_LargeImage;
CImageList m_SmallImage;
class CSearchFileDlg : public CDialog
{
// Construction
public: AddRows(CString strStartFolder);
CSearchFileDlg(CWnd* pParent = NULL); // standard constructor
BOOL CSearchFileDlg::OnInitDialog()
{
...
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
// {
// 리스트 컨트롤에 이미지 연결) m_img.Create(IDB_LIST, 16, 2, RGB(255, 255, 255));
m_lstResult.SetImageList(&m_img, LVSIL_SMALL);
// 리스트 컨트롤 헤더 설정 m_lstResult.InsertColumn(0, "이름", LVCFMT_LEFT, 150);
m_lstResult.InsertColumn(1, "위치", LVCFMT_LEFT, 150);
m_lstResult.InsertColumn(2, "크기(byte)", LVCFMT_RIGHT, 80);
m_lstResult.InsertColumn(3, "생성날짜", LVCFMT_CENTER, 80);
...
// }
return TRUE; // return TRUE unless you set the focus to a control
}
...
void CSearchFileDlg::AddRows(CString strStartFolder)
{
...
if(m_lstResult.GetItemCount())
m_lstResult.DeleteAllItems();
...
int i;
...
{
...
i = m_lstResult.GetItemCount();
AddListItem(m_lstResult, "...", i, 0, -1, 1);
AddListItem(m_lstResult, strFolder, i, 1);
...
}
}
void CSearchFileDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here // {
CString str, strTmp, strPath;
if (m_lstResult.GetSelectedCount() != 1) // 아이템이 선택되지 않은경우
return;
int sel = m_lstResult.GetSelectionMark(); //더블클릭한 아이템 얻음
BOOL CPractice8_1Dlg::OnInitDialog()
{
...
// TODO: Add extra initialization here
// {
LV_COLUMN lvColumn;
char* list[4] = {"순번", "학과", "학번", "이름"};
int nWidth[4] = {50, 150, 100, 100};
// List Control의 컬럼을 설정한다.
for( int i = 0; i < 4; i++ )
{
lvColumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_CENTER;
lvColumn.pszText = list[i];
lvColumn.iSubItem = i;
lvColumn.cx = nWidth[i];
m_listStudent.InsertColumn(i, &lvColumn);
}
// List Control 스타일 변경을 위한 콤보 상자의 초기 선택 값을 지정한다.
m_listStudent.SetExtendedStyle(m_listStudent.GetExtendedStyle() | LVS_EX_FULLROWSELECT |
LVS_EX_GRIDLINES);
...
// }
return TRUE; // return TRUE unless you set the focus to a control
}
void CPractice8_1Dlg::OnSelchangeComboStyle()
{
// TODO: Add your control notification handler code here
long setStyle = GetWindowLong(m_listStudent.m_hWnd, GWL_STYLE);
setStyle &= ~LVS_TYPEMASK;
int numSel = ((CComboBox*)GetDlgItem(IDC_COMBO_STYLE))->GetCurSel();
switch(numSel)
{
case 0 :
setStyle |= LVS_REPORT;
break;
case 1:
setStyle |= LVS_LIST;
break;
case 2:
setStyle |= LVS_SMALLICON;
break;
case 3 :
setStyle |= LVS_ICON;
break;
}
BOOL CFileTamView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
// {
// 리스트뷰 모양 설정 cs.style |= LVS_REPORT|LVS_SHOWSELALWAYS;
// }
return CListView::PreCreateWindow(cs);
}
...
void CFileTamView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
// TODO: You may populate your ListView with items by directly accessing
// its list control through a call to GetListCtrl(). GetListCtrl().SetImageList( m_imgFile.GetImageList(), LVSIL_SMALL);
// 파일 출력
if(!cfile.IsDirectory())
{
// 파일명 출력
AddListItem(GetListCtrl(), cfile.GetFileName(), 0, 0, -1,
m_imgFile.GetIcon(cfile.GetFilePath()), -1);
// 파일 크기 출력
CString str;
str.Format("%lu", cfile.GetLength());
AddListItem(GetListCtrl(), str, 0, 1);
// 파일 생성날짜 출력
CTime cTime;
cfile.GetCreationTime(cTime);