1. Запустить КОМПАС 2. Файл - Создать - Чертеж - Ок 3. Инструменты - Обозначения - Обозначение центра 4. На панели свойств (по умолчанию расположена внизу) перейти на вкладку Параметры 5. В контролах Выступ или Пунктир или Промежуток или Точка попробовать прокрутить спин вверх (или вниз). Ожидаемый результат: в контролах значение при каждом нажатии изменяется с инкрементом 1.0 Фактический результат: выдается сообщение Значение выходит за границы диапазона... При вводе в edit box значения с клавиатуры и нажатии Enter значение так же не фиксируется и при выполнении команды не отрабатывается.
Выложил патч в рассылку etersoft. Похоже проблема была в следующем. Для сообщения UDM_SETRANGE в MSDN сказано: The maximum position can be less than the minimum position. Clicking the up arrow button moves the current position closer to the maximum position, and clicking the down arrow button moves towards the minimum position. Компас посылает сообщение UDM_SETRANGE32 и, судя по всему, обработка этого сообщения должна выполняться аналогично UDM_SETRANGE. Т.е. все сказанное в MSDN выше справедливо и для UDM_SETRANGE32. Патч корректирует обработку сообщения UDM_SETRANGE32.
(In reply to comment #1) > Выложил патч в рассылку etersoft. > > Похоже проблема была в следующем. > Для сообщения UDM_SETRANGE в MSDN сказано: > > The maximum position can be less than the minimum position. Clicking the up > arrow button moves the current position closer to the maximum position, and > clicking the down arrow button moves towards the minimum position. > > Компас посылает сообщение UDM_SETRANGE32 и, судя > по всему, обработка этого сообщения должна > выполняться аналогично UDM_SETRANGE. Т.е. все > сказанное в MSDN выше справедливо и для > UDM_SETRANGE32. > Патч корректирует обработку сообщения > UDM_SETRANGE32. > Скорее всего надо преобразовать явно данные к 32 битам, посмотри как это делается с другими сообщениями.
case UDM_SETRANGE32: infoPtr->MinVal = (INT)wParam; infoPtr->MaxVal = (INT)lParam; Наверное, явного преобразования к INT будет достаточно.
(In reply to comment #3) > case UDM_SETRANGE32: > infoPtr->MinVal = (INT)wParam; > infoPtr->MaxVal = (INT)lParam; > > Наверное, явного преобразования к INT будет > достаточно. > Может быть. Наверное стоит послать данный патч в winehq и посмотреть, что они на это скажут :))
Открываю чтобы переназначить на себя и порверить.
Проверил на Компас 10. Не воспроизвелось. wine-1.0.9-alt23 wine-etersoft-sql-1.0.9-alt7 libwine-1.0.9-alt23 libwine-gl-1.0.9-alt23