Уроки Iczelion'а



         

Урок 11. Больше о диалоговых окнах - часть 5


FilterString - это фильтр имен файлов, который мы определяем следующим образом.

FilterString db "All Files",0,"*.*",0 db "Text Files",0,"*.txt",0,0

Заметьте, что все четыре строки заканчиваются нулем. Первая строка - это описание следующей строки. Первая строка является описанием первой. В качестве фильтра мы можем определить все, что захотим. Мы должны

добавить дополнительный ноль после последнего фильтра, чтобы указать конец. Hе забудьте сделать это, иначе ваше диалогове окно поведет себя весьма странно.

mov ofn.lpstrFile, OFFSET buffer mov ofn.nMaxFile,MAXSIZE

Мы указываем, где диалоговое окно поместить имена файлов, выбранные пользователем. Учтите, что мы должны указать размер буфера в nMaxFile. Мы можем затем извлечь имя файла из этого буфера.

mov ofn.Flags, OFN_FILEMUSTEXIST or \ OFN_PATHMUSTEXIST or OFN_LONGNAMES or\ OFN_EXPLORER or OFN_HIDEREADONLY

Флаги определеяю характериситики окна.

  • OFN_FILEMUSTEXIST и OFN_PATHMUSTEXIST указывают то, что имя файла и путь, который пользователь набирает в edit control'е имени файла, должен

    существовать.

  • OFN_LONGNAMES указывает диалоговому окну показывать длинные имена.
  • OFN_EXPLORER указывает на то, что появление диалогового окна должно быть похоже на explorer.
  • OFN_HIDEREADONLY прячет неизменяемый checkbox на диалоговом окне. Есть много других флагов, которые вы можете использовать. Проконсультируйтесь с вашим справочником по Win32 API.

mov ofn.lpstrTitle, OFFSET OurTitle

Указываем имя диалогового окна.

invoke GetOpenFileName, ADDR ofn

Вызов функции GetOрenFileName. Передача указателя на структуру ofn в качестве параметров.

В тоже время, диалоговое окно открытия файла отображается на экране. Функция не будет возвращаться, пока пользователь не выберет файл или не нажмет кнопку 'Cancel' или закроет диалоговое окно.

Функция возвратит TRUE, если пользователь выбрал файл, в противном случае FALSE.

.if eax==TRUE invoke lstrcat,offset OutputString,OFFSET FullPathName invoke lstrcat,offset OutputString,ofn.lpstrFile invoke lstrcat,offset OutputString,offset CrLf invoke lstrcat,offset OutputString,offset FullName




Содержание  Назад  Вперед