[MFC] 리스트 컨트롤에 파일 끌어놓기(드래그 앤 드롭) 기능
프로그래밍 언어/C++2021. 3. 5. 15:04
지난 시간에 대화상자에 파일 끌어놓기 기능을 구현하였는데 이번 시간에는 리스트컨트롤에 파일을 끌어놓기하여 파일 경로를 추가하는 기능을 구현하겠습니다.
리스트 컨트롤에 파일 끌어놓기 기능을 추가하기 위해서는 해당 기능을 포함하는 클래스를 재정의해서 구현하면 간단히 할 수 있습니다.
1. 클래스 마법사를 실행하고 MFC 클래스를 추가합니다. 재정의할 클래스는 CListControl 클래스를 선택하면 됩니다. 클래스명은 자신이 하고 싶은 이름으로 하시면 됩니다. 여기서는 CMyListCtrl 로 지정하였습니다.
2. 생성된 CMyListCtrl 클래스를 확인해보면 아무것도 없습니다. 간단히 상속 재정의한 클래스입니다.
여기서 클래스마법사를 실행하고 WM_DROPFILES 기능을 추가합니다.
3. 아래와 같이 재정의된 OnDropFiles() 함수에 아래와 같이 작성합니다.
4. 다이얼로그에 리스트 컨트롤을 추가하고 리스트컨트롤 속성 - 동작 - 파일허용을 TRUE로 설정합니다.
그 다음 리스트 컨트롤 변수명을 지정합니다.
5. 다이얼로그 헤더파일에서 우리가 재정의한 리스트 컨트롤 클래스로 이름을 변경합니다.
상단에 재정의한 리스트컨트롤 헤더파일을 추가하고 변경해줍니다.
6. OnInitDialog() 함수에 아래 3줄을 추가한다.
ChangeWindowMessageFilter(0x0049, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
DragAcceptFiles();
7. 컴파일 후 실행하여 리스트컨트롤에 파일을 끌어와서 놓아주면 아래와 같이 추가되는 것을 확인할 수 있습니다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
C++ 콘솔창 띄우지 않게 안보이게 하기 (0) | 2022.08.13 |
---|---|
ShellExecute 함수 사용법, ShellExecute 기본 브라우저 사용법 (0) | 2022.08.13 |
[MFC] 대화상자에 파일 끌어놓기(드레그 앤 드롭) 기능 (0) | 2021.03.05 |
winapi 또는 mfc에서 파일 포인터 위치 얻기 함수 (0) | 2020.10.19 |
WebBrower control Rendering Version 설정 (0) | 2020.08.31 |