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 |