เสมือน 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)