2013-12-11 4 views
0

Я новичок в C++, так что простите меня, если этот вопрос слишком общий ..... Я использую VS2010 для создания простого текстового редактора MFC на C++. В настоящий момент я пытаюсь запустить и запустить следующие базовые функции: панель инструментов с кнопкой подчеркивания, которая подчеркивает выделенный текст при нажатии на него.Как подчеркнуть текст в MFC C++

Я рыскал в интернете для решения, но только придумали следующее:

http://aclacl.brinkster.net/MFC/ch12e.htm

однако либо этот код является неполным или я не могу понять, как они связывают фактическую кнопку обработчиков команд (или того, что они называют кодом, который выполняет фактическую подчеркивание).

Может кто-то любезно:

а) выяснить, где кнопка подчеркивание находится в StyleBar.cpp

ИЛИ

б) указать меня в направлении лучшего решения, если таковой существует.

Большое спасибо.

+0

Похоже, что подчеркивание обрабатывается в MyWordView в этом образце кода, а не в StyleBar. –

+0

Кнопка подчеркивания прикреплена к ID ID_CHAR_UNDERLINE, которая, вероятно, находится где-то в файле ресурсов, и обрабатывается в классе CMyWordView CView. Приведенный выше пример выглядит хорошим началом для того, что вы ищете. удачи – Max

+0

В статье в разделе «Строка стилей» говорится, что «нажатие кнопки« жирный », например, активирует * CMyWordView :: OnCharBold *». Быстрый взгляд на код для «CMyWordView» показывает очень похожий метод под названием «OnCharUnderline()». –

ответ

0

В блоке BEGIN_MESSAGE_MAP ... END_MESSAGE_MAP происходит преобразование очереди сообщений в обработчики. В частности, строка ON_COMMAND(ID_CHAR_UNDERLINE, OnCharUnderline) отображает WM_COMMAND для идентификатора управления подчеркиванием методу OnCharUnderline, который обрабатывает установку стиля выделения. Страница, на которую вы ссылаетесь, не включает файлы ресурсов. Сама панель инструментов, по-видимому, построена на предыдущей странице статьи.

+0

WM_COMMAND? ...... – pintee

+0

Сообщение команды Windows. Это то, что происходит в очереди сообщений вашего приложения под обложками MFC. – mark

+0

Когда вы нажимаете одну из кнопок, WM_COMMAND с идентификатором кнопки помещается в очередь сообщений. Сообщения выгружаются из очереди и обрабатываются приложением. MFC скрывает очередь от разработчика приложения и предоставляет макросы (MESSAGE_MAP) для привязки сообщения к методам класса. – mark

Смежные вопросы