Wine@Etersoft 1.0 CAD 1.1.0-eter5/4 1. Запустить КОМПАС 2. Файл - Открыть 3. В диалоге Выберите файлы для открытия перейти в папку /KOMPAS-3D.../Samples/Drawings 4. Селектировать любой документ Ожидаемый результат: слева в окошке отображается предварительный просмотр документа Фактический: не отображается. Иногда промаргивает, но снова заливается серым фоном
Вариант исходников 2005 года для файловых диалогов: wine-etersoft-devel/stricted/KOMPAS/FileDialog
Мы когда-то исправляли эту проблему для старых версий КОМПАС, но она проявляется опять. Возможно есть связь с # 827?
Выложил патч. Контрол предварительного просмотра - это обычный 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.
В патче есть небольшая недоработка. Проверка на стиль контрола уже есть в функциях STATIC_SetIcon, STATIC_SetBitmap и STATIC_SetEnhMetaFile. Необходимо решение исключающее лишние, дублирующие проверки.
Выложил патч [TRY2]. Теперь проверка на соответсвие типа static контрола и картинки происходит только в STATIC_Set* функциях, как и раньше. В случае несоответствия типов, эти функции возвращают значение -1. Перед перерисовкой контрола это значение проверяется и если оно равно -1 - перерисовки не происходит.
Отображается. WINE@Etersoft CAD 1.1.0 eter9/eter5 Принято.