Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 4270 - Не отображается предварительный просмотр документов в диалоге открытия   Make a simular bug
Summary: Не отображается предварительный просмотр документов в диалоге открытия
Status: CLOSED FIXED
Alias: None
Product: КОМПАС 3D
Classification: Поддержка проектов
Component: Тестирование (show other bugs)
Version: v10
Hardware: PC All
: P4 major
Target Milestone: ---
Assignee: Илья Шпигорь
QA Contact: Денис Баранов
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 753
  Show dependency treegraph
 
In work:
Reported: 2009-09-02 17:51 MSD by Виталий Булгаков
Modified: 2024-03-04 14:58 MSK (History)
4 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Виталий Булгаков 2009-09-02 17:51:20 MSD
Wine@Etersoft 1.0 CAD 1.1.0-eter5/4
1. Запустить КОМПАС
2. Файл - Открыть
3. В диалоге Выберите файлы для открытия перейти в папку /KOMPAS-3D.../Samples/Drawings
4. Селектировать любой документ
Ожидаемый результат: слева в окошке отображается предварительный просмотр документа
Фактический: не отображается. Иногда промаргивает, но снова заливается серым фоном
Comment 1 Vitaly Lipatov 2009-09-02 22:20:55 MSD
Вариант исходников 2005 года для файловых диалогов:
wine-etersoft-devel/stricted/KOMPAS/FileDialog
Comment 2 Vitaly Lipatov 2009-09-02 22:26:57 MSD
Мы когда-то исправляли эту проблему для старых версий КОМПАС, но она проявляется опять.

Возможно есть связь с # 827?
Comment 3 Илья Шпигорь 2009-09-16 12:30:06 MSD
Выложил патч.

Контрол предварительного просмотра - это обычный Static. Ошибка в лишней перерисовки, которая возникает при обработке сообщения STM_SETIMAGE этим контролом.

Компас пытается установить новый курсор и посылает STM_SETIMAGE с wParam = IMAGE_CURSOR. Но согласно MSDN если тип контрола не соответствует типу картинки - сообщение должно игнорироваться:

http://msdn.microsoft.com/en-us/library/bb760782%28VS.85%29.aspx

В данном случае картинка имеет тип IMAGE_CURSOR, а контрол SS_LEFT.

Решение заключается в добавлении необходимых проверок в обработку сообщения STM_SETIMAGE.
Comment 4 Илья Шпигорь 2009-09-21 12:00:45 MSD
В патче есть небольшая недоработка.
Проверка на стиль контрола уже есть в функциях STATIC_SetIcon, STATIC_SetBitmap и STATIC_SetEnhMetaFile. Необходимо решение исключающее лишние, дублирующие проверки.
Comment 5 Илья Шпигорь 2009-09-21 13:57:19 MSD
Выложил патч [TRY2].

Теперь проверка на соответсвие типа static контрола и картинки происходит только в STATIC_Set* функциях, как и раньше. В случае несоответствия типов, эти функции возвращают значение -1. Перед перерисовкой контрола это значение проверяется и если оно равно -1 - перерисовки не происходит.
Comment 6 Денис Баранов 2010-12-03 19:10:25 MSK
Отображается.
WINE@Etersoft CAD 1.1.0 eter9/eter5
Принято.