16,472
社区成员
发帖
与我相关
我的任务
分享
打开选择文件对话框,
VOID OnOpenSoundFile( HWND hDlg )
{
HRESULT hr;
static TCHAR strFileName[MAX_PATH] = TEXT(""); //static可以保存记录,到下次调用时可以获得上次的值
static TCHAR strPath[MAX_PATH] = TEXT("");//可以记忆上次的文件路径
// Setup the OPENFILENAME structure
OPENFILENAME ofn = { sizeof(OPENFILENAME), hDlg, NULL,
TEXT("Wave Files\0*.wav\0All Files\0*.*\0\0"), NULL,
0, 1, strFileName, MAX_PATH, NULL, 0, strPath,
TEXT("Open Sound File"), //标题
OFN_FILEMUSTEXIST|OFN_HIDEREADONLY //文件必须存在,不显示只读的文件
, 0, 0,
TEXT(".wav"), 0, NULL, NULL };
// Display the OpenFileName dialog. Then, try to load the specified file
if( TRUE != GetOpenFileName( &ofn ) )
{
//取消了选择框.
return;
}
//按下了确定.strFileName保存了文件绝对路径
//xxx.Load( strFileName );
}
上面是win32 的,下面是mfc的
CFileDialog FileDlg(FALSE); //true表示文件打开对话框,false表示文件保存对话框
CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"wav(*.wav)|*.wav|所有文件(*.*)|*.*|", NULL/*AfxGetMainWnd()*/);
CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Wave 音频文件(wav)|*.wav|MP3 音频文件(mp3;mp2;mp1;mpa;mp3pro)|*.mp3;*.mp2|所有文件(*.*)|*.*|",
NULL/*AfxGetMainWnd()*/);
//选择打开文件
CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
"JPG(*.jpg)|*.jpg|位图文件(*.bmp)|*.bmp|所有文件(*.*)|*.*", NULL/*AfxGetMainWnd()*/);
if(mFileDlg.DoModal()==IDOK)
{
m_strPathName=mFileDlg.GetPathName(); //路径
m_strFileName=mFileDlg.GetFileName(); //路径+文件名
}
//选择保存文件的路径和文件名
CFileDialog FileDlg(FALSE);
CFileDialog FileDlg(FALSE,NULL,"shot.bmp",0,"位图文件(*.bmp)|*.bmp",NULL);
CString strFileName;
if(FileDlg.DoModal() == IDOK)
{
strFileName = FileDlg.GetPathName();
}
else
{
return 0;
}