본문 바로가기
Programing_Language/C++

[MFC] csv파일 경로를 ListControl에 채우기

by neohtux 2019. 4. 6.
728x90

1. MFC 기본 컨트롤러 배치 (Button, ListControl)

 

Listcontrol

MFCL 기본컨트롤 ListControl과

Button(버튼)을 추가해줍니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. 두 컨트롤에 대해 변수 추가

해당 컨트롤을 우클릭하여 변수를 추가해줍니다.

 

 

리스트 컨트롤의 변수이름은 ListController로 해줍니다. 이름은 편하게 지으시면 됩니다.

 

사진은 없지만 버튼도 똑같이 해주면됩니다.

 

 

3. ListControll의 속성을 변경해줍니다.

 

 

 

여기까지 했으면 아래와 같이 보입니다.

버튼 캡션이름은 ReadFile로 했습니다. 안바꾸셔도 됩니다. 

 

 

 

 

코드 작성이전에 해당 변수들이 잘 만들어졌는지 확인합니다.

 

클래스명 변수이름;

ex) CButton(클래스명) ReadFile(변수이름);

 

 

 

4. OnInitDialog()로가셔서 Listcontroll의 첫번째 항목을

   삽입해줍니다. 

 

 

 

5. On OnBuClickedButton(); 함수로 가서 버튼 발생시 처리되는 

   이벤트를 코드로 작성해줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void Cblog_testDlg::OnBnClickedButton1()
{
    CString FilePath;
    
 
    CFileDialog FileDlg(TRUE, CA2W("*.csv"), NULL, OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT, CA2W("CSV Files(*.csv)|*.csv|"), NULL);
 
    
 
    if (FileDlg.DoModal() == IDOK)
    {
 
        POSITION pos = FileDlg.GetStartPosition();
 
        //FileDialog에서 선택한 파일의 전체 경로를 가져오기.
        FilePath = FileDlg.GetNextPathName(pos);
        
        //전체 경로에서 파일명만 가져오기.
        FilePath.Delete(0, FilePath.ReverseFind('\\'+ 1);
 
        //전체 경로를 자르고 파일명만 ListControll 항목에 추가
        LIstController.InsertItem(0, FilePath);
    }
    else
    {
        LIstController.DeleteAllItems();
    }
    
}
cs

 

 

6. 실행 화면

위에서는 파일이 하나인데, 

FileDialog 옵션에서 세번째 파라미터에 OFN_ALLOWMULTISELECT 옵션을 해주시면 여러개 선택이 가능합니다.

 

300x250

댓글