![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Создал программу, которая открывает файлы собственного файла, например, *.abcd
Файл содержит некоторые модели (скажем, рисунки). Этот файл не откроется ничем другим, кроме этой программы. Как при выборе этого файла в OpenDialog отобразить модель, содержащуюся в нем, как бы предпросмотром в OpenDialog? Что требуется: 1. При выборе файла в OpenDialog выполнить функцию. 2. В результате функции будет создан TBitmap, который надо поместить в OpenDialog как предпросмотр |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
см в функцию GetOpenFileName
параметр OPENFILENAME::lpfnHook (и про темплейт тож не забывайте). гугл найдет примеры. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Спасибо за наводку - нашел я материал по этой теме... читал долго, пришлось даже с делфей на си часть кода переводить..
Но вот уже 2ю ночь сижу и не могу дорубиться:
В результате получаю пустое место... картинкой и не пахнет - в чем дело? |
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Суть вот в чем:
Я хочу поменять картинку в диалоге в RealTime, т.е. при выборе файла в окне диалога... Но у меня не получается ее установить даже при первом открытии.... Вот ресурс: ----------------------- 101 DIALOG 0, 0, 200, 100 STYLE DS_SETFONT | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS FONT 8, "MS Shell Dlg" { LTEXT "Preview:", 105, 120, 50, 25, 10, NOT WS_GROUP CONTROL "", 106, "STATIC", SS_BITMAP, 80, 0, 300, 30 } ----------------------- Картинку пытаюсь открыть из файла и назначить контролу 106 при инициализации, но в итоге картинка все равно пустая... ЧТо я не так делаю? |
|||
|
||||
mekhanikus |
|
|||
Вольноопределяющийся ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 16.6.2008 Где: Спасск-Дальний Репутация: 1 Всего: 1 |
Имхо, для "static control" логичней применить STM_SETIMAGE.
|
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Все зачипись - заработало! Спасибо ;) А это правильно, что я использую STATIC? Может есть более правильные варианты? PS: А как отловить выбор файла в диалоге? Это сообщение отредактировал(а) fridkaratel - 21.7.2008, 14:07 |
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Короче, порылся я в dialogs.pas - и нашел то, что нужно!
Вот код, который берет имя файла:
![]() |
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Когда я поднимаюсь на папку вверх (или выбираю быстрый путь слева), то элементы диалога не прорисовываются, пока на них не наведешь курсор... почему? |
|||
|
||||
Ant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 3.9.2006 Репутация: нет Всего: нет |
UpdateWindow?
|
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
И куда UpdateWindow вставить? ![]() |
|||
|
||||
Ant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 3.9.2006 Репутация: нет Всего: нет |
Что-то типа этого, набросал быстро, поэтому не уверен в работоспособности этого кода, но принцип, думаю, понятен.
|
|||
|
||||
Ant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 3.9.2006 Репутация: нет Всего: нет |
удалил.
![]() Это сообщение отредактировал(а) Ant - 12.8.2008, 08:25 |
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Не получилось... глюк так и остался... Все равно окно не прорисовывается...
Оно прорисовывается, т.е. бордюр, фон, заголовок, список файлов - это есть... Мои контролы тоже видны.. Но вот стандартные кнопки "Вверх", "Назад", "Открыть" и т.п. - они не видны, пока на них не наведешь мышкой... :( |
|||
|
||||
fridkaratel |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Откопал причину проблемы...
Если я делаю так:
Окно диалога прорисовывается нормально во время навигации. Но если я подключаю свой шаблон и добавляю соответствующий флаг:
То окно не прорисовывается как надо... В чем может быть проблема? Это сообщение отредактировал(а) fridkaratel - 14.8.2008, 14:36 |
||||
|
|||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Оказалось, что дело в шаблоне...
У меня был такой шаблон: 101 DIALOG 0, 0, 400, 75 STYLE DS_SETFONT | DS_CONTROL | WS_CHILD | WS_VISIBLE FONT 8, "MS Shell Dlg" { LTEXT "Высота:", 100, 68, 0, 30, 10, NOT WS_GROUP LTEXT "Ширина:", 101, 68, 15, 30, 10, NOT WS_GROUP LTEXT "12", 103, 100, 0, 15, 10, NOT WS_GROUP LTEXT "12", 104, 100, 15, 15, 10, NOT WS_GROUP CONTROL "", 106, "STATIC", SS_BITMAP, 130, 0, 350, 100, WS_EX_CLIENTEDGE } Убрал NOT WS_GROUP, а для диалога поставил STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK И все заработало! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |