¸Þ´º¸¦ ÅëÇØ ÆÄÀÏÀ» ¿©´Â µ¿ÀÛÀº ¸¶¿ì½º Ŭ¸¯¼ö°¡ ¸¹¾Æ ´Ù¼Ò ºÒÆíÇÑ ¸éÀÌ ÀÖ´Ù. ±×·¡¼ Ž»ö±â¿¡¼ ÆÄÀÏÀ» ²ø¾î´Ù ³õ±â¸¸ ÇÏ¸é ¹Ù·Î ¿¾îÁÖ´Â ±â´ÉÀÌ ÈçÈ÷ ¸¹ÀÌ »ç¿ëµÇ´Âµ¥ ÀÌ ±â´ÉÀ» ³Ö¾îº¸ÀÚ. ÄÚµå´Â ±×¸® ¾î·ÆÁö ¾Ê´Ù.
int OnCreate(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
....
DragAcceptFiles(hWnd,TRUE);
return 0;
}
DragAcceptFiles ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÀÌ À©µµ¿ì°¡ ÆÄÀÏ µå·¡±×¸¦ ¹Þ°Ú´Ù´Â ÀÇ»ç Ç¥½Ã¸¦ ÇÑ´Ù. ±×·¯¸é ÆÄÀÏ µå·Ó½Ã ÀÌ À©µµ¿ì·Î WM_DROPFILES ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. OnDropFiles ÇÔ¼ö¿¡¼ ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ¿© ÆÄÀÏÀ» ¿¾î ÁØ´Ù.
void OnDropFiles(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
TCHAR Path[MAX_PATH];
int Count,n;
Count=DragQueryFile((HDROP)wParam,0xffffffff,NULL,0);
for (n=0;n<Count;n++) {
DragQueryFile((HDROP)wParam,n,Path,MAX_PATH);
OpenFromFile(Path);
SetForegroundWindow(hWnd);
}
}
wParamÀ¸·Î Àü´ÞµÇ´Â hDrop ÇÚµéÀ» ÅëÇØ ¸î °³ÀÇ ÆÄÀÏ°ú ¾î¶² ÆÄÀÏÀÌ µå·ÓµÇ¾ú´ÂÁö Á¶»çÇÒ ¼ö ÀÖ´Ù. µå·ÓµÈ ÆÄÀÏÀÇ °³¼ö³ª °æ·Î¸¦ Á¶»çÇÒ ¶§´Â DragQueryFile ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. º¹¼ö °³ÀÇ ÆÄÀÏÀÌ µå·ÓµÉ ¼öµµ ÀÖÀ¸¹Ç·Î ¸ÕÀú Count¿¡ µå·ÓµÈ ÆÄÀÏÀÇ °³¼ö¸¦ ±¸ÇÏ°í ·çÇÁ¸¦ µ¹¸ç µå·ÓµÈ ¸ðµç ÆÄÀÏÀ» ÇѲ¨¹ø¿¡ ¿¾î ÁØ´Ù. ÆÄÀÏÀ» ¿ ¶§´Â ¹°·Ð OpenFromFile ÇÔ¼ö¸¦ È£ÃâÇÏ¸é µÈ´Ù. Ž»ö±â¿¡¼ ÆÄÀÏÀ» µå·¡±×ÇÏ¿© ¶³¾î¶ß¸®±â¸¸ Çϸé Áï½Ã ¿¸± °ÍÀÌ´Ù. ¾ÆÁÖ ÀÛÀº ±â´ÉÀÌÁö¸¸ ¿©·¯ ÆÄÀÏÀ» ¹ø°¥¾Æ °¡¸ç ÆíÁýÇÏ´Â »ç¶÷¿¡°Ô´Â ¾ÆÁÖ Æí¸®ÇÑ ±â´ÉÀÌ´Ù.