В меню поля имеют неправильную ширину. При расчёте ширины не учитывается место под горячие клавиши.
В Консультанте элементы меню имеют флаг MF_OWNERDRAW и должны рассчитываться и отрисовываться программой. Размер, возвращаемый функцией MENU_CalcItemSize, рассчитывается неправильно.
При версии WinXP меню отображается правильно. В Win98 - нет. Нужно понять алгоритм расчёта и чем отличаются друг от друга расчёты для разных win-версий.
К сборке 1.0.6 приложен патч, добавляющий к ширине строки 15 символов, если для пункта определены горячие клавиши. Вроде отображается корректно.
Как показали логи, по сообщению WM_MEASUREITEM Консультант в версии >=win2000 вызывает DrawTextExW с полной строкой меню (с горячей клавишей), а при <win2000 - вызывает со строкой без горячей клавиши, выкидывая \tCtrl-P... Из-за этого пункты не влезают в меню.
Оставляем на время, когда начнём общаться с Консультантом
Имеет смысл поднимать вопрос и решать его сейчас?
Нет.
Патч был потерян и найден опять: commit 75fef45fabde9736e3b5af7a8e85ab5b4d2bd033 Author: Vitaly Lipatov <lav@etersoft.ru> Date: Tue Oct 21 16:59:50 2008 +0400 fix owner drawn menu in Konsultant (close eterbug #489 again)
Опять всплывает проблема, на wine-1.0.10
Патч, упоминающийся в комментарии #8, приложен
(In reply to comment #10) > Патч, упоминающийся в комментарии #8, > приложен > На текущей сборке eter10.1/eter6 проблемы не увидел. Можно поподробнее сценарий воспроизведения. P.S. Через winexp консультант преобретает совсем другой вид. Появляются некоторые недостающие значки.
Created attachment 1088 [details] скриншот Способ воспроизведения прост и виден на скриншоте :)
Проблема уходит вместе с появлением возможности запускать Консультант в режиме winexp. Старый хак откатил, патч в рассылке.