FileDialog 注意事项
- OPENFILENAMEW ofn;
- ::memset( &ofn,0,sizeof(ofn));
- ofn.lStructSize = sizeof (OPENFILENAME) ;
- ofn.hwndOwner = GetHWND();
- ofn.lpstrFilter = L"Gif Files/0*.gif/0/0";//L"Gif Files/0*.gif/0All Files/0*.*/0/0"
- ofn.lpstrFile = _wcsCurGifPath;
- ofn.nMaxFile = sizeof(_wcsCurGifPath)/sizeof(WCHAR);//字符个数
- ofn.lpstrFileTitle = NULL;
- ofn.nMaxFileTitle = MAX_PATH;
- ofn.lpstrDefExt = NULL;
- ofn.Flags = OFN_EXPLORER;
- if( ::GetOpenFileNameW(&ofn) != 0 )
- FALSETEST_SE(_clsShowGif.ProcessGif( _wcsCurGifPath),L"处理Gif文件错误");//Mrs Secretary, We want to open a GIF file, pleae help me.
- else
- ::wmemset( _wcsCurGifPath,0,sizeof(_wcsCurGifPath)/sizeof(WCHAR));
注意 ofn.lpstrFile, 在这个域中,是保存最后的文件路径的,
这个值要求在某些情况下, 内容初始化为NULL.
MSDN:
If the OFN_ALLOWMULTISELECT flag is set and the user selects multiple files, the buffer contains the current directory followed by the file names of the selected files. For Explorer-style dialog boxes, the directory and file name strings are NULL separated, with an extra NULL character after the last file name. For old-style dialog boxes, the strings are space separated and the function uses short file names for file names with spaces. You can use the
If the buffer is too small, the function returns FALSE and the