WinApi을 이용한 파일 선택 dialog



기본 템플릿 소스에 IDM_EXIT를 기본으로 한 .rc(리소스)파일 수정 및 아래와 같은 소스를 첨부하면 된다.


--- code ---


LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

switch (message)

    {

    case WM_COMMAND:

        {

            int wmId = LOWORD(wParam);

            // 메뉴 선택을 구문 분석합니다.

            switch (wmId)

            {

            case IDM_ABOUT:

                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);

                break;

            case IDM_EXIT:

                DestroyWindow(hWnd);

                break;

case IDM_OPEN:

{

TCHAR str[300];

TCHAR lpstrFile[MAX_PATH] = L"";

OPENFILENAME OFN;

memset(&OFN, 0, sizeof(OPENFILENAME));

OFN.lStructSize = sizeof(OPENFILENAME);

OFN.hwndOwner = hWnd;

OFN.lpstrFilter = TEXT("모든 파일(*.*)\0*.*\0");

OFN.lpstrFile = lpstrFile;

OFN.nMaxFile = MAX_PATH;

if (GetOpenFileName(&OFN) != 0) {

wsprintf(str, TEXT("%s 파일을 선택했습니다."), OFN.lpstrFile);

MessageBox(hWnd, str, TEXT("파일 열기 성공"), MB_OK);

}

return 0;

}

break;

            default:

                return DefWindowProc(hWnd, message, wParam, lParam);

            }

        }

        break;

    case WM_PAINT:

        {

            PAINTSTRUCT ps;

            HDC hdc = BeginPaint(hWnd, &ps);

            // TODO: 여기에 hdc를 사용하는 그리기 코드를 추가합니다.

            EndPaint(hWnd, &ps);

        }

        break;

    case WM_DESTROY:

        PostQuitMessage(0);

        break;

    default:

        return DefWindowProc(hWnd, message, wParam, lParam);

    }

    return 0;

}


'Programming > C,C++' 카테고리의 다른 글

simple avi parser  (0) 2017.03.21
WinApi BMP Viewer by SetPixel  (0) 2017.03.21
BMP2ASCII [펌]  (0) 2017.03.20
GLFW Hello World  (0) 2017.03.19
rand() / srand()  (0) 2017.03.17
Posted by 루나s
,