티스토리 뷰

프로그래밍/API

파일공용다이얼로그

에어버스 2016. 4. 16. 10:26

OPENFILENAME 구조체를 사용하기 위해 commdlg.h 포함 시키고
관련 세부 설정 후 GetOpenFileName(&ofn) 호출하면 된다. 

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
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <commdlg.h>
...
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
OPENFILENAME ofn;
TCHAR strFile[MAX_PATH] = L"";
TCHAR strTemp[MAX_PATH];
 
    switch (message)
    {
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // 메뉴 선택을 구문 분석합니다.
            switch (wmId)
            {
case ID_FILEOPEN:
memset(&ofn, 0sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd; // 대화상자 소유자 
ofn.lpstrFilter = L"Text File(*.txt)\0*,txt;\0"; // 파일형식 파일필터
ofn.lpstrFile = strFile; // 파일 경로
ofn.nMaxFile = MAX_PATH; // lpstrFile 길이
if (GetOpenFileName(&ofn) != 0)
{
wsprintf(strTemp, L"%s 파일을 선택했습니다.", ofn.lpstrFile);
MessageBox(hWnd, strTemp, L"파일열기", MB_OK);
}
break;
 
case ID_FILESAVE:
memset(&ofn, 0sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.lpstrFilter = L"Text File(*.txt)\0*.txt;\0";
ofn.lpstrFile = strFile;
ofn.nMaxFile = MAX_PATH;
if (GetSaveFileName(&ofn) != 0)
{
wsprintf(strTemp, L"%s 파일을 선택했습니다", ofn.lpstrFile);
MessageBox(hWnd, strTemp, L"파일저장", MB_OK);
}
break;
cs
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 31