FileDialog 注意事项

  1. OPENFILENAMEW   ofn;
  2.     ::memset( &ofn,0,sizeof(ofn));
  3.     ofn.lStructSize   =   sizeof   (OPENFILENAME)   ;   
  4.     ofn.hwndOwner     =   GetHWND();                         
  5.     ofn.lpstrFilter   =   L"Gif Files/0*.gif/0/0";//L"Gif Files/0*.gif/0All Files/0*.*/0/0"
  6.     ofn.lpstrFile =  _wcsCurGifPath;   
  7.     ofn.nMaxFile  =  sizeof(_wcsCurGifPath)/sizeof(WCHAR);//字符个数 
  8.     ofn.lpstrFileTitle  = NULL;   
  9.     ofn.nMaxFileTitle  =  MAX_PATH;   
  10.     ofn.lpstrDefExt = NULL;
  11.     ofn.Flags = OFN_EXPLORER;
  12.     if( ::GetOpenFileNameW(&ofn) != 0 )
  13.         FALSETEST_SE(_clsShowGif.ProcessGif( _wcsCurGifPath),L"处理Gif文件错误");//Mrs Secretary, We want to open a GIF file, pleae help me.
  14.     else
  15.         ::wmemset( _wcsCurGifPath,0,sizeof(_wcsCurGifPath)/sizeof(WCHAR));

注意 ofn.lpstrFile, 在这个域中,是保存最后的文件路径的,

这个值要求在某些情况下, 内容初始化为NULL.

MSDN:

lpstrFile
Pointer to a buffer that contains a file name used to initialize the File Name edit control. The first character of this buffer must be NULL if initialization is not necessary. When the GetOpenFileName or GetSaveFileName function returns successfully, this buffer contains the drive designator, path, file name, and extension of the selected file.

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 FindFirstFile function to convert between long and short file names. If the user selects only one file, the lpstrFile string does not have a separator between the path and file name.

If the buffer is too small, the function returns FALSE and the CommDlgExtendedError function returns FNERR_BUFFERTOOSMALL. In this case, the first two bytes of the lpstrFile buffer contain the required size, in bytes or characters.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值