Рейтинг:
0
Jochen Arndt
У вас есть два варианта, где оба требуют получения класса из Класс CStatusBar[^] или Класс CMFCStatusBar[^].
Измените тип m_wndStatusBar
в вашем главном фрейме окна класса заголовочный файл к производному классу и включить заголовочный файл производного класса. При необходимости создайте и инициализируйте m_wndStatusBar
в OnCreate
класса основной рамы.
Первый метод-это переопределение CStatusBar::DrawItem
соответственно. CMFCStatusBar::OnDrawPane
сделать рисунок по мере необходимости. Это требует, чтобы переданная строка содержала делимер, который используется для разделения ее на левую и правую части.
Вторым методом будет добавление панели для выровненного по правому краю текста. Недостатком этого решения является то, что фиксированное пространство дополнительной панели больше не может использоваться самой левой панелью (при условии использования стиля SBPS_STRETCH
что позволяет этой панели занимать оставшееся свободное пространство). Преимущество этого решения заключается в том, что вы можете установить левый и правый текст независимо. Но чтобы показать выровненный по правому краю текст, вы должны использовать ownerdraw и для этой панели.
Member 13089825
спасибо за ваш ответ.
не могли бы вы привести какой-нибудь пример, если это возможно
Jochen Arndt
Извините, у меня нет примеров.
Вы можете найти "cstatusbar ownerdraw" (или cmfcstatusbar). Попаданий не так уж много.
Способ рисования текста зависит от используемого типа строки состояния и выбранного метода.
Чтобы нарисовать текст, получите прямоугольник для панели и используйте DrawText.
Member 13089825
здесь мы используем (под названием cmainframe*)(AfxGetApp()-&ГТ;m_pMainWnd)-&ГТ;setmessagetext(л"строка")таким образом, используя это, как мы можем установить на правую сторону
здесь мы используем стандартную строку состояния
не могли бы вы помочь мне, если у вас есть какие-то идеи по этому поводу
Jochen Arndt
Как я уже писал:
Выведите класс из строки состояния C[MFC]и нарисуйте там владельца.
При вызове SetMessageText() из окна он будет перенаправлен в m_wndStatusBar
член. В строке состояния производного класса нарисуйте сообщение самостоятельно.
Это требует некоторого времени и тестирования, что слишком много для быстрых ответов.
Также невозможно ответить, не зная типа вашей строки состояния и того, как должны быть нарисованы строки / Что такое passewd для SetMessageText().
Member 13089825
здесь мы используем (под названием cmainframe*)(AfxGetApp()-&ГТ;m_pMainWnd)-&ГТ;setmessagetext(л"строка")таким образом, используя это, как мы можем установить на правую сторону
здесь мы используем стандартную строку состояния
не могли бы вы помочь мне, если у вас есть какие-то идеи по этому поводу