CCmdTarget::OnCmdMsg

เสมือน BOOL OnCmdMsg ( UINT nID, int nCode, โมฆะ * pExtra, AFX_CMDHANDLERINFO * pHandlerInfo );

ส่งกลับค่า

ไม่ใช่ศูนย์ถ้าข้อความถูกจัดการ 0 อื่น?

พารามิเตอร์

nID

ประกอบด้วย ID คำสั่ง?

nCode

ระบุรหัสการแจ้งเตือนการสั่ง?

pExtra

ใช้ตามค่าของnCode?

pHandlerInfo

ถ้า ไม่ว่าง OnCmdMsgกรอกสมาชิกpTargetและpmfของโครงสร้างpHandlerInfoแทนที่ของคำสั่งการจัดส่ง โดยปกติ พารามิเตอร์นี้ควรเป็นNULL?

หมายเหตุ

เรียกว่าโดยกรอบ การกระบวนผลิต และส่งข้อความคำสั่ง และ การจัดการการปรับปรุงวัตถุอินเทอร์เฟซผู้ใช้คำสั่ง นี่คือชุดคำสั่งใช้งานหลักของสถาปัตยกรรมของคำสั่งกรอบ?

เวลาเรียกใช้งานOnCmdMsg dispatches คำสั่งไปยังวัตถุอื่น ๆ หรือการจัดการกับคำสั่งตัวเอง โดยการเรียกคลารากCCmdTarget::OnCmdMsgซึ่งไม่จริงการค้นหาข้อความแผนที่ ดูคำอธิบายที่สมบูรณ์ของสายงานเริ่มต้นคำสั่ง การจัดการข้อความและหัวข้อที่มีการแมปในVisual c ++ Programmer ของคำแนะนำ?

ในโอกาสที่ไม่ค่อยพบ คุณอาจต้องการแทนที่ฟังก์ชันนี้สมาชิกเพื่อขยายกรอบของคำสั่งที่มาตรฐานกำหนดเส้นทางได้ การอ้างอิงถึง21 หมายเหตุทางเทคนิคสำหรับรายละเอียดขั้นสูงของสถาปัตยกรรมคำสั่งที่สายงานการผลิต?

ตัวอย่าง

/ / ตัวอย่างนี้แสดงการขยายกรอบของคำสั่งมาตรฐาน / / กระบวนผลิตจากมุมมองไปยังวัตถุที่ถูกจัดการ โดย 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 |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)

ดูเพิ่มเติมnbspCCmdUI(&N)

Index