/******************************************************************** * GetOpenFileName 和 GetSav eFileName 函数使用例程 * * 御风 * 2010.07.01 ********************************************************************/ #include #include int WINAPI WinMain( HINSTANCE hInstance, // 当前实例的句柄 HINSTANCE hPrevInstance, // 上一个实例的句柄,这个是为了和Win 3.1 兼容,在Win32 的程序中此参数无用 LPSTR lpCmdLine, // 指向命令行字符串的指针 int nCmdShow // window显示状态 ) { FILE *fp; OPENFILENAME ofn; TCHAR szFile[MAX_PATH]="路径"; //路径缓冲区 TCHAR szTitle[MAX_PATH]=" 文件名"; //文件名缓冲区 static TCHAR szFilter[] = " 文件类型\0*.*\0 文件类型1\0*.*\0"; ofn.lStructSize = sizeof (OPENFILENAME) ; ofn.hwndOwner = NULL ; ofn.hInstance = NULL ; ofn.lpstrFilter = szFilter ; //类型过滤 ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = 0 ; ofn.nFilterIndex = 0 ; ofn.lpstrFile = szFile ; // 文件路径指针 ofn.nMaxFile = MAX_PATH ; //文件路径大小 ofn.lpstrFileTitle = szTitle ; // 文件名指针 ofn.nMaxFileTitle = MAX_PATH ; //文件名大小 ofn.lpstrInitialDir = NULL; //初始化路径 ofn.lpstrTitle = " 对话框标题" ; //对话框标题 ofn.Flags = OFN_ALLOWMULTISELECT|OFN_EXPLORER ; // 位标记的设置 ofn.nFileOffset = 0 ; ofn.nFileExtension = 0 ; ofn.lpstrDefExt = TEXT ("txt") ; //默认扩展名 ofn.lCustData = 0L ; ofn.lpfnHook = NULL ; ofn.lpTemplateName = NULL ; GetOpenFileName(&ofn);// 打开文件窗口 GetSaveFileName(&ofn);//保存文件窗口 char a[]={nCmdShow+0x26,0}; MessageBox (NULL, ofn.lpstrFileTitle , TEXT ("HelloMsg"), 0); fp=fopen(ofn.lpstrFile,"wb"); fwrite(ofn.lpstrFile,1,MAX_PATH,fp); fclose(fp); return 0 ; } OPENFILENAME OPENFILENAME 结构包含了GetOpenFileName 和 GetSav eFileName 函数用来初始化打开或另存为对话框的信息。在用户关闭对话框后,系统返回关于用户的选择信息到这个结构中。 结构体原型 typedef st...