´Ù. ½© ¿ÀÇÂ

¸Þ´º¸¦ ÅëÇØ ÆÄÀÏÀ» ¿©´Â µ¿ÀÛÀº ¸¶¿ì½º Ŭ¸¯¼ö°¡ ¸¹¾Æ ´Ù¼Ò ºÒÆíÇÑ ¸éÀÌ ÀÖ´Ù. ±×·¡¼­ Ž»ö±â¿¡¼­ ÆÄÀÏÀ» ²ø¾î´Ù ³õ±â¸¸ ÇÏ¸é ¹Ù·Î ¿­¾îÁÖ´Â ±â´ÉÀÌ ÈçÈ÷ ¸¹ÀÌ »ç¿ëµÇ´Âµ¥ ÀÌ ±â´ÉÀ» ³Ö¾îº¸ÀÚ. ÄÚµå´Â ±×¸® ¾î·ÆÁö ¾Ê´Ù.

 

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 ÇÔ¼ö¸¦ È£ÃâÇÏ¸é µÈ´Ù. Ž»ö±â¿¡¼­ ÆÄÀÏÀ» µå·¡±×ÇÏ¿© ¶³¾î¶ß¸®±â¸¸ Çϸé Áï½Ã ¿­¸± °ÍÀÌ´Ù. ¾ÆÁÖ ÀÛÀº ±â´ÉÀÌÁö¸¸ ¿©·¯ ÆÄÀÏÀ» ¹ø°¥¾Æ °¡¸ç ÆíÁýÇÏ´Â »ç¶÷¿¡°Ô´Â ¾ÆÁÖ Æí¸®ÇÑ ±â´ÉÀÌ´Ù.