OPENFILENAME opfn; WCHAR strFilename[MAX_PATH];//存放文件名 //初始化 ZeroMemory(&opfn, sizeof(OPENFILENAME)); opfn.lStructSize = sizeof(OPENFILENAME);//结构体大小 //设置过滤 opfn.lpstrFilter = L"所有文件\0*.*\0文本文件\0*.txt\0MP3文件\0*.mp3\0"; //默认过滤器索引设为1 opfn.nFilterIndex = 1; //文件名的字段必须先把第一个字符设为 \0 opfn.lpstrFile = strFilename; opfn.lpstrFile[0] = '\0'; opfn.nMaxFile = sizeof(strFilename); //设置标志位,检查目录或文件是否存在 opfn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST; //opfn.lpstrInitialDir = NULL; // 显示对话框让用户选择文件 if(GetOpenFileName(&opfn)) { //在文本框中显示文件路径 //HWND hEdt = GetDlgItem(hDlg, IDC_EDTFILENAME); SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)strFilename); }
原文地址:http://blog.csdn.net/yazhengwei/article/details/45418567