´ÜÀÏ ¼±Åà ¸ñ·Ï »óÀÚ¿¡¼­ µð·ºÅ͸® ¸ñ·Ï ¸¸µé±â

´ÙÀ½ ¿¹Á¦¿¡¼­´Â ¸ñ·Ï »óÀÚ¿¡¼­ ÇöÀç µð·ºÅ͸®ÀÇ ³»¿ëÀ» Ç¥½Ã ÇÏ °í »ç¿ëÀÚ°¡ ÇÑ ¹ø¿¡ ÇϳªÀÇ ÆÄÀÏÀ» »èÁ¦ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.

Ç¥ÁØ ¸ñ·Ï »óÀÚ ½ºÅ¸ÀÏ ¿Ü¿¡ÀÌ ¸ñ·Ï »óÀÚ´Â LBS_MULTICOLUMN ¹× LBS_HSCROLL ½ºÅ¸ÀÏÀ» ÇÏ°íÀÖ´Ù. Äڵ带 ÇöÀç µð·ºÅ͸®¿¡ ÀÖ´Â ¸ðµç ÆÄÀÏÀÇ À̸§À¸·Î ¸ñ·Ï »óÀÚ¸¦ ä¿ì±â À§ÇØ DlgDirList ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ¸ñ·Ï »óÀÚ¸¦ ÃʱâÈ­ ÇÕ´Ï´Ù. »èÁ¦ ´ÜÃ߸¦ ¼±Åà ÇÏ´Â °æ¿ì DlgDirSelectEx ÇÔ¼ö´Â ¼±ÅÃÇÑ ÆÄÀÏÀÇ À̸§À» °Ë»ö ÇÕ´Ï´Ù. »ç¿ë ÇÏ ¿© ÆÄÀÏÀ» »èÁ¦ ÇÏ´Â Äڵ带 DeleteFile ÇÔ¼ö ¹× LB_DELETESTRING ¸Þ½ÃÁö¸¦ º¸³» µð·ºÅ͸® ¸ñ·Ï »óÀÚ ¾÷µ¥ÀÌÆ®.

#define BUFFER MAX_PATH 
 
BOOL APIENTRY DlgDelFileProc( 
    HWND hDlg,            // window handle to dialog box 
    UINT message,         // type of message 
    UINT wParam,          // message-specific information 
    LONG lParam) 
{ 
 
    DWORD cchCurDir; 
    LPTSTR lpszCurDir; 
    LPTSTR lpszFileToDelete; 
    int nItem; 
    int nTotal; 
    TCHAR tchBuffer[BUFFER]; 
    BOOL fResult; 
 
    switch (message) 
    { 
        case WM_INITDIALOG: 
 
           // Initialize the list box by filling it with files from 
           // the current directory. 
 
           lpszCurDir = tchBuffer; 
           GetCurrentDirectory(cchCurDir, lpszCurDir); 
           DlgDirList(hDlg, lpszCurDir, IDL_FILES, IDS_PATHTOFILL, 0); 
           SetFocus(GetDlgItem(hDlg, IDL_FILES)); 
           return FALSE; 
 
        case WM_COMMAND: 
 
            switch (LOWORD(wParam)) 
            { 
                case IDOK: 
 
                    // When the user presses the DEL (IDOK) button, 
                    // delete the selected file. 
 
                    lpszFileToDelete = tchBuffer; 
 
                    DlgDirSelectEx(hDlg, lpszFileToDelete, MAX_PATH, 
                        IDL_FILES); 
                    fResult = DeleteFile(lpszFileToDelete); 
                    if (!fResult) 
                    { 
                        MessageBox(hDlg, "Could not delete file.", 
                            NULL, MB_OK); 
                    } 
                    else 
                    { 
                        nItem = SendMessage(GetDlgItem(hDlg, 
                                IDL_FILES), LB_GETCURSEL, 0, 0); 
 
                        nTotal = SendMessage(GetDlgItem(hDlg, 
                            IDL_FILES), LB_DELETESTRING, nItem, 0); 
 
                        // Update the list box. 
 
                        if (nTotal > nItem) 
                        { 
                            SendMessage(GetDlgItem(hDlg, IDL_FILES), 
                                LB_SETCURSEL, nItem, 0); 
                        } 
                        else 
                        { 
                            SendMessage(GetDlgItem(hDlg, IDL_FILES), 
                                LB_SETCURSEL, nTotal, 0); 
                        } 
                    } 
                    return TRUE; 
 
                case IDCANCEL: 
 
                    // Destroy the dialog box. 
 
                    EndDialog(hDlg, TRUE); 
                    return TRUE; 
 
                default: 
                    return FALSE; 
            } 
 
        default: 
            return FALSE; 
    } 
} 
 

 

Index