Getopenfilename проблема при изменении фильтра

  • Автор темы Hmarik
  • Дата начала
Статус
Закрыто для дальнейших ответов.
H

Hmarik

Имеем вот такой код.
Код:
	OPENFILENAME ofn;	  // common dialog box structure
WCHAR szFile[512]=_T("");	  // buffer for file name
// Initialize OPENFILENAME
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = this->m_hWnd;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = _T("XML Files (*.xml)\0*.xml\0All (*.*)\0*.*\0");
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
// Display the Save dialog box. 
if (::GetOpenFileName(&ofn)==TRUE)

Проблема следующая. В открытом этом диалоге меняем фильтр например на All и все файлы и директории пропадают... можно выйти на уровень выше и вернутся в предыдущую папку и все отобразится.. что за глюк?
 
E

European

Странно... Вставил твой код в проект, все ОК

Возможно из-за этого:
OPENFILENAME.lpstrFilter
Pointer to a buffer containing pairs of null-terminated filter strings. The last string in the buffer must be terminated by two NULL characters.
 
H

Hmarik

Для: European
... если поменять строку на
Код:
ofn.lpstrFilter = _T("XML Files (*.xml)\0*.xml\0All (*.*)\0*.*\0\0");
результат тот же...

А на какой Win пробывали?
Я могу попробывать только комплируюя на VS2003 и на Win 2003 SP1 или XP...
Ошибка одна и таже.. по умолчанию фильтр XML работает.. выбираю All - и все пропадает - пустой список файлов...
 
E

European

<!--QuoteBegin-Hmarik+3:08:2007, 15:58 -->
<span class="vbquote">(Hmarik @ 3:08:2007, 15:58 )</span><!--QuoteEBegin-->А на какой Win пробывали?
[snapback]74390" rel="nofollow" target="_blank[/snapback]​
[/quote]
Windows XP SP2 Eng + VS2005 SP1 (Win32 проект с настройками по умолчанию)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!