• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

Dialog에 Drag&Drop 기능을 적용하자.

Programming/C, C++, MFC 2014. 12. 1. 20:39







파일을 이용할때, 매번 file dialog 열어서 경로 찾아가기 귀찮다.


혹은 뭐 어떻게든 프로그램내의 것이 아닌 파일을 그냥 끌어다 놓으면 적용됐으면 좋겠다 싶어서


dialog에 drag&drop 기능을 간단하게 적용해 봄봄. (이제겨울인데 봄은 언제오지..)


생각했던 것보다 파일 주소만 가져올때는 간단하더라. 


제일 먼저 OnInitDialog()에 DragAcceptFiles(TRUE); 추가

[출처] 다이얼로그에 파일 드래그 앤 드랍|작성자 DK


그다음 WM_DROPFILES 윈도우메세지를 추가 해 준다.



마법사를 이용하면 간단하게 처리 된다.


마법사를 이용하지 않을 경우 

  • 메세지 맵에 ON_WM_DROPFILES();
  • 헤더에    afx_msg void OnDropFiles(HDROP hDropInfo);
  • cpp에    void 클래스명::OnDropFiles(HDROP hDropInfo){   }


위 세가지를 추가 해 준다.


OnDropFiles 함수에서는 뭐 여러가지 처리가 가능한가 본데 나는 파일 주소 불러오는것만 사용한다 일단.

가장 간단한 기본 코드



  1. void CGTPositionViewerDlg::OnDropFiles(HDROP hDropInfo)
  2. {
  3.         int NumDropFiles = 0;
  4.         char FilePath[MAX_PATH];                // minwindef.h 에서 MAX_PATH 는 260으로 define 되어 있다.
  5.  
  6.         NumDropFiles = DragQueryFileA(hDropInfo, 0xFFFFFFFF, FilePath, MAX_PATH);
  7.  
  8.         for (int i = 0; i < NumDropFiles; i++)
  9.         {
  10.                 DragQueryFileA(hDropInfo, i, FilePath, MAX_PATH);       // Get File Path
  11.  
  12.                 CString str = char2CString(FilePath);                           // 확인용
  13.                 AfxMessageBox(str);
  14.         }
  15.  
  16.         CDialogEx::OnDropFiles(hDropInfo);
  17. }



함수 다 적었으면 컴파일 하고 dialog에 파일을 드랍하면 파일경로가 뜨는걸 확인 할 수 있다.



저작자표시 비영리 (새창열림)

'Programming > C, C++, MFC' 카테고리의 다른 글

성능 및 메모리 관점에서 살펴본 if문과 switch 문의 차이점  (0) 2015.04.21
[VS2013] error MSB8031 - 멀티바이트문자집합 에러를 해결하자.  (0) 2015.03.06
rand() 는 랜덤이 아니다?? 이제는 랜덤을 바꿔야 할 때!  (0) 2014.11.21
fatal error LNK1123: COFF로 변환하는 동안 오류가 발생했습니다.  (0) 2014.07.29
변수의 메모리 할당과 #pragma pack()  (0) 2014.07.23
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

카테고리

  • 살다보니.. (449)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (147)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (58)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (8)
    • 전공관련 (80)
      • Algorithm (6)
      • Deep Learning (54)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (8)
    • Computer (118)
      • Utility (21)
      • Windows (31)
      • Mac (4)
      • Ubuntu, Linux (58)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • 갤럭시노트3
  • 후쿠오카
  • 칼로리 대폭발
  • DeepLearning
  • 에누리닷컴
  • 크롬
  • Deep Learning
  • CStdioFile
  • Computer Tip
  • review
  • matlab
  • 일본
  • 매트랩
  • ColorMeRad
  • 매트랩 함수
  • 스마트체험단
  • utility
  • matlab function
  • random variable
  • Convolutional Neural Networks
  • function
  • SVM
  • 오봉자싸롱
  • portugal
  • DSLR
  • ReadString
  • 큐슈
  • 딥러닝
  • 포르투갈
  • LIBSVM

달력

«   2025/06   »
일 월 화 수 목 금 토
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 30
06-07 23:05

LATEST FROM OUR BLOG

RSS 구독하기

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바