Я читал о панелях инструментов и наткнулся на
Допустим, вы унаследовали класс панели инструментов с именем CStyleBar от CToolBar, который включает поле со списком со списком всех шрифтов, установленных в системе. Когда пользователь перемещает курсор по документу, вы хотите обновить поле со списком, чтобы выбранный в нем элемент был именем гарнитуры в текущей позиции курсора. Вместо того, чтобы реагировать на каждое изменение положения курсора путем непосредственного обновления выбора поля со списком, вы можете переопределить OnUpdateCmdUI, как показано здесь:
void CStyleBar::OnUpdateCmdUI (CFrameWnd* pTarget, BOOL bDisableIfNoHndler) { CToolBar::OnUpdateCmdUI (pTarget, bDisableIfNoHndler); CString string = GetTypefaceAtCaret (); if (m_wndComboBox.SelectString (-1, string) == CB_ERR) m_wndComboBox.SetCurSel (-1); }
Итак, единственное, что меня смущает, это то, как произошло перемещение каретки через вызов документа OnUpdateCmdUI
? и если он не вызывает OnUpdateCmdUI
, что еще происходит при перемещении каретки через вызовы документа?
Любая помощь приветствуется.
С уважением.