
<그림 1 :: 다이얼 로그의 Accept file속성 true>



<그림 4 :: 윈도우 헤더파일을 주석처리 한 모습.>

마지막으로 다이얼로그 함수를 다음과 같이 변경해 주면 일사천리다.
아이디는 그림 6을 참고하도록 !

INT_PTR CALLBACK Open(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
UNREFERENCED_PARAMETER(lParam);
LPTSTR pFileName;
DWORD dwNumDrop;
DWORD dwBufSize;
CString strFileName;
TCHAR tcFileName[128];
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_DROPFILES:
// dwNumDrop에File의개수를입력받는다.
dwNumDrop = DragQueryFile((HDROP)wParam, 0xFFFFFFFF, NULL ,0);
// dwNumDrop만큼for문을돈다
for(DWORD i=0L; i<dwNumDrop; i++)
{
// i번째에해당하는파일의버퍼사이즈를불러온다.
dwBufSize = DragQueryFile((HDROP)wParam, i, NULL ,0L) + 1;
// 버퍼사이즈만큼TCHAR를LPTSTR 형식으로동적할당취한다.
pFileName=(LPTSTR)new TCHAR [dwBufSize];
// 난 DragQueryFile 함수가뭐하는녀석인지잘모른다.
// 하지만 주석 처리 하면 프로그램 에러가 난다는 것은 잘 알고있다.
DragQueryFile((HDROP)wParam, i, pFileName, dwBufSize);
// 클래스변수(strFileName)에포인터변수의내용(pFileName)을초기화시킨다.
strFileName=pFileName;
// 포인터변수를동적해제시킨다.
delete []pFileName;
// 클래스변수를ID_DLG_FILE_PATH 에출력시킨다.
SetDlgItemText(hDlg, ID_DLG_FILE_PATH, strFileName);
// 클래스변수를TCHAR 변수에초기화시킨다.
wsprintf(tcFileName, strFileName);
// TCHAR 변수에있는File의경로(Path)를지워준다.
PathStripPath(tcFileName);
// file명과확장자만존재하는TCHAR 변수를ID_DLG_FILE_NAME에출력한다.
SetDlgItemText(hDlg, ID_DLG_FILE_NAME, tcFileName);
}
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
switch (wmId)
{
case ID_DLG_FILE_PATH:
break;
case ID_DLG_FILE_NAME:
break;
case ID_DLG_FILE_DRAG:
break;
case ID_DLG_FILE_OK:
SendMessage(hDlg, WM_COMMAND, IDOK, IDCANCEL);
break;
}
break;
}
return (INT_PTR)FALSE;
}
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [API] 기초 코드 | simpled | 2013.06.23 | 9796 |
67 | [MFC] 한글 파일 입출력 | simpled | 2013.06.24 | 9990 |
66 | [MFC] 한글 파일 출력 | simpled | 2013.06.24 | 7149 |
65 |
[API] 발표 자료
![]() | simpled | 2013.06.23 | 6555 |
64 |
[API] Drag&Drop2
![]() | simpled | 2013.06.23 | 6491 |
63 |
[API] 기말 과제
![]() | simpled | 2013.06.23 | 7104 |
62 | [API] 프로젝트 경로 리턴 함수 (비공개) | simpled | 2013.06.23 | 6814 |
61 | [API] 파일 조작 관련된 좋은 함수들 | simpled | 2013.06.23 | 6518 |
» |
[API] Drag&Drop
![]() | simpled | 2013.06.23 | 6787 |
59 |
[API] 로딩 화면(팝업(popup)) 완성 - 2
![]() | simpled | 2013.06.23 | 6051 |
58 |
[API] 로딩 화면(팝업(popup)) 완성 - 1
![]() | simpled | 2013.06.23 | 6069 |
57 |
[API] 로딩 화면(팝업(popup)) 기획
![]() | simpled | 2013.06.23 | 6389 |
56 |
[API] 제목 표시줄 없애기
![]() | simpled | 2013.06.23 | 6571 |
55 | [API] Alt+F4 막기 | simpled | 2013.06.23 | 7290 |
54 |
[API] Project : SimplePaint v4.0
![]() | simpled | 2013.06.23 | 6200 |
53 |
[API] Project : SimplePaint v1.0
![]() | simpled | 2013.06.23 | 6795 |
52 |
[API] DialogBox
![]() | simpled | 2013.06.23 | 6929 |
51 | [API] Static | simpled | 2013.06.23 | 6353 |
50 | [API] ScrollBar | simpled | 2013.06.23 | 6322 |
49 |
[API] ComboBox
![]() | simpled | 2013.06.23 | 6834 |
48 |
[API] ListBox
![]() | simpled | 2013.06.23 | 7465 |