Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Open dialog на несколько файлов - глюк? Старый тип интерфейса (win3.11)не нужно! 
:(
    Опции темы
Роман
Дата 15.6.2005, 10:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Почему в процедуре OpenFileName при установке константы для множественного открытия файлов атрибута
OpenFile.flags = &H200&
форма приобретает дизайн windows 3.1?
Хотелось бы чтобы форма осталась в дизайне windows 9x - nt.

---------------
'определение
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA" (pOpenfilename As OpenFileName) As Long
'Вызывает диалоговое окно выбора файла для сохранения
Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias _
"GetSaveFileNameA" (pOpenfilename As OpenFileName) As Long

Private Type OpenFileName

lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

' сам код программы

Private Sub Command1_Click()
Dim OpenFile As OpenFileName
Dim sFilter, a As String
Dim o As Integer
OpenFile.lStructSize = Len(OpenFile)
OpenFile.hwndOwner = Me.hwnd
OpenFile.hInstance = App.hInstance
sFilter = "Все файлы (*.*)" & Chr$(0) & "*.*" & Chr$(0)
OpenFile.lpstrFilter = sFilter
OpenFile.nFilterIndex = 1
OpenFile.lpstrFile = String$(255,  0)
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
OpenFile.lpstrFileTitle = OpenFile.lpstrFile
OpenFile.nMaxFileTitle = OpenFile.nMaxFile
OpenFile.lpstrInitialDir = ""
OpenFile.lpstrTitle = "Открыть файлы..."
OpenFile.flags = &H8000& + &H4& + &H8&' + &H200&
' почему как только строку &h200& разкоментируем (позволяя выбор нескольких файлов),
'появляется обычный интерфейс??!!!
' &H200&
'Определяет поле списка имен файлов, позволяет многократный выбор. Пользователь может 'выбрать более чем один файл. Имена выбранных файлов возвращаются свойством FileName 'строковой переменной и разграничены пробелами. Примечание. Не поддерживается длинные 'имена файлов (всего 8 букв)
'&H800&
'Определяет, что пользователь может вводить только допустимый путь, если флаг установлен и 'пользователь вводит недопустимый путь отображается сообщение.
'&H4&
'Делает невидимым переключатель Read Only.
'&H8000&
'Определяет вид диалогового окна подобно Explorer Windows95.(Только для Windows95)
'

GetOpenFileName OpenFile
Dim strFileName, temp As String
Dim cv, cv1 As Integer
strFileName = OpenFile.lpstrFile
If strFileName = "" Then Exit Sub
o = InStr(1, strFileName, Chr(0))
strFileName = Mid(strFileName, 1, o - 1)
If strFileName = "" Then RichTextBox1.Text = "": Exit Sub
End Sub


  Вверх
Akina
Дата 15.6.2005, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата
OpenFile.flags = &H200&

вообще-то
OpenFile.flags = OpenFile.flags OR (&H200&)




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Voldemar2004
Дата 15.6.2005, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



А не проще будет вместо такого громоздкого кода написать свою форму, с FileListBox'om, DirListBox'om, DriveListBox'om ? И коротенькую ф-цию, которая выбирает по маске файлы, которые тебе нужны?


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Naghual
Дата 16.6.2005, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Voldemar2004
Напиши. Только такую, чтобы и из сети выбирать и чтобы по объему кода не превосходила изложенное выше.
Добавлено @ 00:24
Да, и не забудь еще и правильные иконки показывать, подсказки и все остальное.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Роман
Дата 1.7.2005, 12:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.