#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, 0, sizeof(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, 0, sizeof(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;