Кнопка предварительного просмотра MFC Print Prev не активируется при использовании с Objective Grid от Rogue Wave - Stingray Studio
У меня есть приложение MFC, в котором используется Objective Grid Stingray Studio от Rogue Wave для отображения диалога с сеткой. При предварительном просмотре печати сетка использует механизм предварительного просмотра печати MFC для создания диалогового окна предварительного просмотра. В диалоговом окне я вижу все кнопки, которые вы ожидаете, в том числе "Следующая" и "Предыдущая", а также увеличение и уменьшение. У меня в сетке данных более чем на одну страницу, и поэтому я вижу полосу прокрутки справа, кнопка "Далее" включена, а кнопка "предыдущий" отключена. Если я нажимаю следующую кнопку, диалоговое окно продвигает предварительный просмотр до следующей страницы данных, и я вижу, что полоса прокрутки соответственно перемещается вниз, но кнопка "Предыдущая" не активируется. Я могу использовать полосу прокрутки для прокрутки в обоих направлениях, но кнопка "Prev" никогда не становится активной, а кнопка "Next" никогда не отключается при достижении последней страницы. Я вижу похожую проблему с кнопками Zoom. Я могу увеличить масштаб, но кнопка уменьшения масштаба никогда не включается, поэтому я больше не могу уменьшить масштаб.
Кто-нибудь видел такое поведение раньше и знает, что его вызывает?
1 ответ
Так что может показаться, что моя проблема сводится к тому, что на панели инструментов не появляются сообщения для обновления. Это должно быть получение WM_IDLEUPDATECMDUI
всякий раз, когда предварительный просмотр аннулирует себя, но это не так. Пример приложения, которое я нашел, работает правильно, и он получает эти сообщения. Я считаю, что в моей ситуации происходит то, что мой код находится в DLL для приложения, которое я не контролирую, и когда приложение перехватывает сообщения, оно проглатывает определенные, в том числе и это. Я смог решить проблему с помощью клуджа. Я нахожу окно предварительного просмотра и в виртуальной функции OnPrint отправляю сообщение на его панель инструментов. Это работает довольно хорошо, но это не очень красиво.