CCmdTarget::OnCmdMsg

віртуальний BOOL OnCmdMsg ( UINT nID, int nCode, порожнечу * pExtra, AFX_CMDHANDLERINFO * pHandlerInfo );

Значення, яке повертається

Ненульовий, якщо обробляється повідомлення; в іншому випадку 0.

Параметри

nID

Містить команди ID.

nCode

Визначає код повідомлення команда.

pExtra

Використовуються відповідно до значення nCode.

pHandlerInfo

Якщо не NULL, OnCmdMsg заповнює pTarget і pmf члени pHandlerInfo структура замість диспетчерських команди. Як правило, цей параметр має бути NULL.

Зауваження

Називається рамках маршрут і відправлення повідомлень команди і ручкою оновлення команди користувача інтерфейс об'єктів. Це звичайна основні здійснення архітектури команду рамки.

Під час виконання, OnCmdMsg розсилок команду відносно інших об'єктів або обробляє команди, сам за номером кореневого класу CCmdTarget::OnCmdMsg, який робить фактичного повідомлення карта підстановки. Для повного опису маршрутизації команд за замовчуванням, перегляньте Обробка повідомлень і відображення теми в Visual C++ програміста керівництво.

У рідкісних випадках, ви можете перевизначити цей член функція продовжити в рамках командного стандартних маршрутизації. Зверніться до технічної Примітка 21 за додаткові подробиці архітектура командування маршрутизації.

Приклад

/ / Цей приклад ілюструє розширення в рамках командного стандартних / / route з подання до об'єктів, що керує view.nbsp; У цьому прикладі
/ / Це від в об'єктно орієнтованого малюнок додатків, схожі на що
/ / DRAWCLI зразка програма, яка витягує і редагує "фігури".

BOOL CMyView::OnCmdMsg(UINT nID, int nCode, void* pExtra,
      AFX_CMDHANDLERINFO*-pHandlerInfo)
{
   / / Розширення в рамках команда маршрут з подання до
   / / CMyShape певним застосунком, виділеного
   / / у поданні. m_pActiveShape є NULL, якщо немає фігуру об'єкта
   / / вибрано на даний момент в поданні.
   Якщо ((m_pActiveShape! = NULL)
      & & m_pActiveShape - > OnCmdMsg (nID, nCode, pExtra, pHandlerInfo))
      повертає TRUE;

/ / Якщо не впоратися об'єктів в розширених команда маршрут
   / / команда, тоді нехай базового класу OnCmdMsg впоратися.
   повернення CView::OnCmdMsg (nID, nCode, pExtra, pHandlerInfo);
}

/ / Команда обробник для ID_SHAPE_COLOR (меню команд для зміни
/ / колір вибраної фігури) був доданий до
/ / повідомлення карта з CMyShape (Зауважте, не CMyView) за допомогою ClassWizard.  

/ / Пункту меню буде автоматично ввімкнуто або вимкнуто, залежно від / / на чи є CMyShape вибрано на даний момент в поданні, тобто, / / залежно від того, чи CMyView::m_pActiveView NULL.  Це не / / необхідні для здійснення обробника "ON_UPDATE_COMMAND_UI", щоб увімкнути / / або вимкнути в меню пункт.  

BEGIN_MESSAGE_MAP (CMyShape, CCmdTarget)
   //{{AFX_MSG_MAP(CMyShape)
   ON_COMMAND (ID_SHAPE_COLOR, OnShapeColor)
   //}}AFX_MSG_MAP
END_MESSAGE_MAP()

Огляд CCmdTargetЧлени класу | Ієрархічна діаграма

Дивіться також CCmdUI

Index