파일 선택 기능은 도구를 만들다 보면 자주 필요한 기능입니다. 간단하게 사용법만 예제로 정리해 둡니다.

char old_directory[MAX_PATH];
GetCurrentDirectory(sizeof old_directory, old_directory);

OPENFILENAME open_file_name = {};
open_file_name.lStructSize = sizeof open_file_name;
open_file_name.hwndOwner = NULL;
open_file_name.lpstrFilter = "파일(*.ext)\0*.ext\0모든 파일(*.*)\0*.*\0";
char file_path[MAX_PATH] = {};
open_file_name.lpstrFile = file_path;
open_file_name.nMaxFile = sizeof file_path;
open_file_name.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

if (GetOpenFileName(&open_file_name) != FALSE)
{
// GetOpenFileName이 현재 디렉토리를 바꿔 버리므로, 원래 디렉토리로 되돌려야 합니다. 만약 현재 디렉토리가 바뀌게 하고 싶지 않으면, OFN_NOCHANGEDIR 플래그를 추가해야 합니다.
SetCurrentDirectory(old_directory);

// 여기에서 open_file_name.lpstrFile를 이용해 필요한 일을 처리하면 됩니다.
}
2010/07/31 22:15 2010/07/31 22:15

트랙백 주소 :: http://www.easyisright.net/trackback/654

댓글을 달아 주세요