Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Смотри сюда!!! Добавлено: 18.12.06 01:22  

Автор вопроса:  Oleksiyko
Я нарисовал картинку в PictureBox. Как её сохранить в файл используя Microsoft Common Controls?

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 20vek



Вопросов: 10
Ответов: 71
 Профиль | | #1 Добавлено: 18.12.06 09:46
вот тебе выдержка из guide
GetSaveFileName открывает стандартное общее диалоговое окнo сохранения файла. Вся нужная вам информация для передачи функции содержится в pOPENFILENAME. Имя файла(файлов), возвращаемой функцией также передается в pOPENFILENAME. Функция не сохраняет файл(файлы), а только запускает диалоговое окно и возвращет выбранные файлы
Declare Function GetSaveFileName Lib "comdlg32" Alias "GetSaveFileNameA" (pOPENFILENAME As OPENFILENAME) As Long


Структура OPENFILENAME
Type OPENFILENAME
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  lpstrFilter As String
  lpstrCustomFilter As String
  nMaxCustomFilter As Long
  nFilterIndex As Long
  lpstrFile As String
  nMaxFile As String
  lpstrFileTitle As String
  nMaxFileTitle As String
  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

OPENFILENAME-переменные работают с двумя диалоговыми окнами Windows, GetOpenFileName and GetSaveFileName. Эта структура используется как и для передачи информации функции, так и для возвращения данных от нее
Состав структуры
lStructSize
Размер переменной в байтах (используйте функцию Len () )
hwndOwner
Дескриптор окна, открывающего диалоговое окно
hInstance
При использовании шаблона диалогового окна, это - дескриптор к блоку памяти шаблона диалогового окна. При использовании заданного по умолчанию диалогового окна, установите в 0
lpstrFilter
Записи в поле Тип файлов. Формат строки - " название типа файла " & vbNullChar & "маска" & vbNullChar ... для многих типов, где название типа файла - текст, который появляется в списке и маска - маска расширения. Строка должна закончиваться двойным vbNullChar
lpstrCustomFilter
Сходен с lpstrFilter, но содержит только один тип файла / маску, определяемые пользователем. Если не используется, установите как пустую строку
nMaxCustFilter
Размер строки в байтах, содержащейся в lpstrCustomFilter
nFilterIndex
Номер (#1, #2 и т.д.) данных структуры,определяемых lpstrFilter должен быть задан по умолчанию
lpstrFile
Установите это как ряд пробелов. Получает законченный путь и имя файла файла (ов), выбранных пользователем. Если выбрано несколько файлов, каждое имя файла отделено vbNullChar, и вся строка закончивается двойным vbNullChar
nMaxFile
Длина в символах lpstrFile
lpstrFileTitle
Очень похоже на lpstrFile, но получает только имя выбранного файла
nMaxFileTitle
Длина в символах lpstrFileTitle
lpstrInitialDir
Основная папка для поиска
lpstTitle
Текст, который появляется в заголовке диалогового окна
flags
Нуль или большее количество следующих флажков, определяющих, как создавать файловое диалоговое окно. Некоторые из этих флажков будут установлены функцией после запроса пользователя
OFN_ALLOWMULTISELECT = &H200
Разрешение пользователю выбирать несколько файлов (только для окна Выбор файла)
OFN_CREATEPROMPT = &H2000
Предложение, если выбран несуществующий файл
OFN_ENABLEHOOK = &H20
Используйте функцию, указанную lpfnHook, чтобы обработать сообщения диалогового окна
OFN_ENABLETEMPLATE = &H40
Используйте шаблон диалогового окна,определенный hInstanceи lpTemplateName.
OFN_ENABLETEMPLATEHANDLE = &H80
Используйте предварительно загруженный шаблон диалогового окна, указанный в hInstance.
OFN_EXTENSIONDIFFERENT = &H400
Функция устанавливает этот флажок, если пользователь выбирает файл расширением, отличным от указанной переменной lpstrDefExt
OFN_FILEMUSTEXIST = &H1000
Разрешен выбор только существующих файлов
OFN_HIDEREADONLY = &H4
Скрыть флажок Только чтения (только для диалогового окна Открытие файла).
OFN_NOCHANGEDIR = &H8
Не меняйте текущий каталог Windows для соответствия выбранному в диалоговом окне
OFN_NODEREFERENCELINKS = &H100000
Если выбран ярлык(.lnk или .pif), возвращается непосредственно ярлык вместо файла или папки.
OFN_NONETWORKBUTTON = &H20000
Скрыть и отключить кнопку Network в диалоговом окне
OFN_NOREADONLYRETURN = &H8000
Функция устанавливает этот флажок, если выбранный файл не только для чтения (только для диалогового окна Открытие файла)
OFN_NOVALIDATE = &H100
Не отмечать имя файла c запрещенными символами
OFN_OVERWRITEPROMPT = &H2
Запрос пользователю, если выбранный файл уже существует (только для диалогового окна Сохранение файла)
OFN_PATHMUSTEXIST = &H800
Разрешен выбор только существующих путей
OFN_READONLY = &H1
Отметить поле Открыть только для чтения. Этот флажок установливается после вызова функции, если поле отмечено после нажатия OK пользователем
OFN_SHAREAWARE = &H4000
Игнорирование любых ошибок совместного доступа файла
OFN_SHOWHELP = &H10
Показ кнопки Справка в диалоговом окне
nFileOffet
Получает отсчитываемый от нуля индекс, определяющий,где кончается имя пути и начинается имя файла lpstrFile
nFileExtension
Получает отсчитываемый от нуля индекс, определяющий, где начинается расширение файла lpstrFile
lpstrDefExt
Заданное по умолчанию расширение файла (только для диалогового окна Сохранение файла). Если файл выбран с маской *.*, файл получает это расширение
lCustData
Информация для передачи функции обработчика прерываний, указанной в lpfnHook
lpfnHook
Укажите на функцию обработчика прерываний, которая обрабатывает сообщения диалогового окна. Функция должна возвратить 0, чтобы передать сообщение назад к диалоговому окну и 1, чтобы не передавать. При не использовании функции обработчика прерываний, установите в 0
lpTemplateName
Имя шаблона диалогового окна, указанного в hInstance

Ответить

Номер ответа: 2
Автор ответа:
 20vek



Вопросов: 10
Ответов: 71
 Профиль | | #2 Добавлено: 18.12.06 10:04
Это было через API если по другому то попробуй так.
Private Sub soxranitPicture_Click()
Dim famil as String
famil = “здесь впиши имя под которым сохранить хочеш”
CommonDialog1.FileName = famil + ".bmp"
Clipboard.Clear ' Очищаем буфер(для этого есть метод Clear)
Clipboard.SetData Image1.Picture ' Записываем в буфер изображение из Picture1
CommonDialog1.ShowSave
If CommonDialog1.FLAGS = 1024 Then 'если нажмет кнопку отмена возвратит (0)
SavePicture Clipboard.GetData, CommonDialog1.FileName
Else
Exit Sub
End If
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 20vek



Вопросов: 10
Ответов: 71
 Профиль | | #3 Добавлено: 18.12.06 10:39
Да чуть незабыл при втором способе добавь в проект компонент COMDLG32.OCX и кинь его на форму. Этот способ плох тем что тебе придется таскать COMDLG32.OCX вместе со своей программой
иначе на другом компе она небудет работать.

Ответить

Номер ответа: 4
Автор ответа:
 JMP



Вопросов: 6
Ответов: 171
 Профиль | | #4 Добавлено: 18.12.06 20:57
А не просче использовать АПИ
из библиотеки COMDLG32.DLL ?


OpenFileDialog( _
        hDlg, _
        "Save " + caption, _
        sFile, _         ' имя выбраного файла
        CURDIR$, _       ' откуда начинать смотреть
        "TXT Files (*.txt)|*.txt", _ ' какие типы смотреть
        "txt", _
        %OFN_FILEMUSTEXIST OR %OFN_HIDEREADONLY)

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 19.12.06 21:28
проще - posts++ ...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам