หมายเหตุนี้อธิบายการใช้งานคำสั่งมาตรฐานโดย MFC 2.0 โปรดแน่ใจอ่าน21 หมายเหตุด้านเทคนิคก่อนเนื่องจากการที่อธิบายกลไกที่ใช้ในการนำมาใช้หลายคำสั่งมาตรฐาน?
คำอธิบายนี้ถือว่าความรู้ของ MFC สถาปัตยกรรม APIs และฝึกการเขียนโปรแกรมทั่วไป มีการระบุไว้ เป็นอย่างชาญฉลาด "ปฏิบัติเท่านั้น" APIs ได้อธิบายไว้ นี่ไม่ใช่สถานที่เพื่อเริ่มต้นการเรียนรู้เกี่ยวกับคุณลักษณะของหรือวิธีการที่โปรแกรมใน MFC โปรดอ่านคู่มือของ Visual c ++ Programmer ของสำหรับข้อมูลทั่วไป และรายละเอียดของการส่ง APIs?
ปัญหา
MFC กำหนดหลายคำสั่งมาตรฐานรหัสในส่วนหัวของแฟ้ม AFXRESH. Framework สนับสนุนสำหรับคำสั่งเหล่านี้แตกต่างไป ทำความเข้าใจเกี่ยวกับสถานที่ และลักษณะคลาสที่กรอบจัดการจะคำสั่งเหล่านี้ไม่เพียง แต่แสดงวิธีการที่กรอบภายในการทำงาน แต่จะให้ข้อมูลที่เป็นประโยชน์เกี่ยวกับวิธีการปรับแต่งการใช้งานมาตรฐาน และหวังว่าสอนคุณเกี่ยวกับเทคนิคบางสำหรับการใช้งานตัวจัดการคำสั่งของคุณเอง?
เนื้อหาของหมายเหตุทางเทคนิคนี้
ID ของแต่ละคำสั่งมีการอธิบายไว้ในส่วนที่สอง:
การใช้งานคำสั่งเริ่มต้นส่วนใหญ่จะ prewired ในกรอบของคลาสพื้นฐานข้อแผนที่ ไม่มีการใช้งานบางคำสั่งที่จำเป็นต้องใช้สายอย่างชัดเจนในชั้นเรียนของคุณได้รับ เหล่านี้มีคำอธิบายภายใต้ "หมายเหตุ" ถ้าคุณเลือกตัวเลือกด้านขวาใน AppWizard ตัวจัดการการเริ่มต้นเหล่านี้จะถูกเชื่อมต่อสำหรับคุณในการสร้างโปรแกรมประยุกต์โครงกระดูก?
แบบแผนการตั้งชื่อ
คำสั่งมาตรฐานตามแบบแผนการตั้งชื่อง่าย ๆ ที่เราแนะนำให้คุณใช้ถ้าเป็นไปได้ คำสั่งมาตรฐานส่วนใหญ่จะอยู่ในมาตรฐานที่ในแถบเมนูของโปรแกรมประยุกต์ ชื่อสัญลักษณ์ของคำสั่งเริ่มต้น ด้วย "ID_" ตาม ด้วยผุดขึ้นมาตรฐานชื่อเมนู ตาม ด้วยชื่อรายการเมนู ชื่อสัญลักษณ์คือในกรณีที่สูงด้วยตัวแบ่งคำขีดเส้นใต้ คำสั่งที่ไม่มีชื่อของรายการเมนูมาตรฐาน ชื่อคำสั่งที่ทางถูกกำหนดเริ่มต้น ด้วย "ID_" (ตัวอย่างเช่นID_NEXT_PANE)?
เราใช้คำนำหน้า "ID_" เพื่อแสดงคำสั่งที่ถูกออกแบบให้สามารถผูกเข้ากับรายการเมนู ปุ่มแถบเครื่องมือ หรือวัตถุอื่น ๆ ส่วนติดต่อผู้ใช้คำสั่ง ตัวจัดการคำสั่งจัดการคำสั่ง "ID_" ควรใช้กลไกของสถาปัตยกรรมสั่ง MFC ON_COMMANDและON_UPDATE_COMMAND_UI?
เราขอแนะนำให้คุณใช้คำนำหน้า "IDM_" มาตรฐานสำหรับรายการเมนูที่ไม่ทำตามคำสั่งสถาปัตยกรรม และต้องรหัสเฉพาะเมนูที่เปิดใช้งาน และปิดใช้ แน่นอนว่าหมายเลขของเมนูคำสั่งเฉพาะควรขนาดเล็กเนื่องจากสถาปัตยกรรม MFC สั่งการต่อไปนี้ไม่เพียงทำให้ตัวจัดการคำสั่งมีประสิทธิภาพมากขึ้น (เนื่องจากพวกเขาจะทำงานกับแถบเครื่องมือ) แต่สามารถทำให้ตัวจัดการรหัสคำสั่ง?
ช่วง ID
กรุณาอ้างอิงถึง20 หมายเหตุทางเทคนิคสำหรับรายละเอียดเพิ่มเติมในการใช้ ID ช่วงใน MFC?
คำสั่งมาตรฐานของ MFC ตกอยู่ในช่วง 0xE000 ไป 0xEFFF กรุณาไม่พึ่งค่าเฉพาะของรหัสเหล่านี้เนื่องจากพวกเขาสามารถเปลี่ยนแปลงในไลบรารีรุ่นในอนาคต?
โปรแกรมประยุกต์ของคุณควรกำหนดของคำสั่งในช่วง 0x8000 ไป 0xDFFF?
รหัสคำสั่งมาตรฐาน
สำหรับแต่ละคำสั่ง ID มีมาตรฐานข้อความบรรทัดพร้อมท์สตที่สามารถพบได้ในการแสดงกล่องโต้ตอบแฟ้มRC ID สายอักขระสำหรับพร้อมท์ที่เมนูต้องเหมือนกันสำหรับ ID คำสั่ง?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCWinApp-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
CWinApp::OnFileNewใช้คำสั่งนี้แตกต่างกันขึ้นอยู่กับจำนวนของแม่แบบเอกสารในโปรแกรมประยุกต์ ถ้ามีเพียงหนึ่งCDocTemplate, CWinApp::OnFileNewจะสร้างเอกสารใหม่ของชนิด ตลอดจนคลาส frame และมุมมองเหมาะสม?
ถ้ามีมากกว่าหนึ่งCDocTemplate, CWinApp::OnFileNewจะพร้อมท์ผู้ใช้กับกล่องโต้ตอบ (AFX_IDD_NEWTYPEDLG) ทเลือกชนิดเอกสารที่จะใช้ เลือกCDocTemplateใช้ในการสร้างเอกสาร?
กำหนดเองทั่วไปหนึ่งของID_FILE_NEWเพื่อ ให้แตกต่างและทางเลือกเป็นรูปภาพเพิ่มเติมของชนิดเอกสารได้ ในกรณีนี้ คุณสามารถใช้CMyApp::OnFileNewของคุณเอง และวางในการแมปข้อความของคุณแทนที่เป็นของCWinApp::OnFileNew ไม่จำเป็นต้องเรียกใช้งานคลาสพื้นฐาน?
กำหนดเองทั่วไปที่อื่นของID_FILE_NEWเพื่อ ให้คำสั่งที่แยกต่างหากสำหรับการสร้างเอกสารของแต่ละชนิดได้ ในกรณีนี้ คุณควรกำหนดคำสั่งใหม่รหัส เช่น ID_FILE_NEW_CHART และ ID_FILE_NEW_SHEET?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCWinApp-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
CWinApp::OnFileOpenมีการใช้งานง่าย ๆ โทรCWinApp::DoPromptFileNameตามด้วยCWinApp::OpenDocumentFileมีชื่อแฟ้มหรือเส้นทางของแฟ้มเพื่อเปิด ขั้นตอนการใช้งานCWinApp DoPromptFileNameแสดงการโต้ตอบ FileOpen มาตรฐาน และกรอกข้อมูลกับส่วนขยายของแฟ้มได้รับจากแม่แบบเอกสารปัจจุบัน?
กำหนดเองทั่วไปหนึ่งของID_FILE_OPENคือการ กำหนดเองกล่องโต้ตอบ FileOpen หรือเพิ่มตัวกรองเพิ่มเติมแฟ้ม วิธีแนะนำการกำหนดเองนี้คือ การแทนค่าเริ่มต้นใช้งานกับการโต้ตอบของคุณเอง FileOpen โทรCWinApp::OpenDocumentFileกับแฟ้มของเอกสารหรือชื่อเส้นทาง ไม่จำเป็นต้องเรียกใช้คลาสพื้นฐาน?
CDocument::OnFileCloseสายCDocument::SaveModifiedเพื่อพร้อมท์ให้ผู้ใช้บันทึกเอกสารถ้าจะมีการปรับเปลี่ยนแล้ว สายOnCloseDocument ทั้งหมดปิดตรรกะ รวมทั้งเอกสาร เท่าที่จะทำในชุดคำสั่งOnCloseDocument?
หมายเหตุnbspID_FILE_CLOSEการกระทำต่างจากข้อความWM_CLOSEหรือคำสั่งของระบบSC_CLOSEที่ส่งไปยังเอกสารกรอบหน้าต่าง การปิดหน้าต่างจะปิดเอกสารเท่านั้นหากเป็นเอกสารแสดงหน้าต่างเฟรมสุดท้าย ปิดเอกสารด้วยID_FILE_CLOSEจะไม่ปิดเฉพาะเอกสาร แต่จะปิดหน้าต่างเฟรมทั้งหมดที่แสดงเอกสาร(&N)?
การใช้ตัวช่วยรูทีนCDocument::DoSaveซึ่งใช้สำหรับทั้งOnFileSaveและOnFileSaveAs ถ้าคุณบันทึกเอกสารที่ไม่ถูกบันทึกก่อน (นั่นคือ ไม่มีชื่อเส้นทาง เช่นในกรณีของ FileNew) หรือที่ถูกอ่านจากเอกสารแบบอ่านอย่างเดียวOnFileSaveตรรกะจะทำหน้าที่เหมือนกับคำสั่งID_FILE_SAVE_ASและขอให้ผู้ใช้ใส่ชื่อแฟ้มใหม่ กระบวนการแท้จริงของการเปิดแฟ้มนั้น และทำการบันทึกเสร็จผ่านฟังก์ชันเสมือนOnSaveDocument?
มีอยู่สองประการที่พบโดยทั่วไปกำหนดID_FILE_SAVE สำหรับเอกสารที่ไม่มีบันทึก เพียงแค่เอาID_FILE_SAVEเมนูสินค้าและปุ่มแถบเครื่องมือจากส่วนติดต่อผู้ใช้ของคุณ นอกจากนี้ ตรวจสอบให้แน่ใจว่า คุณไม่สกปรกเอกสารของคุณ (นั่นคือ ไม่เคยเรียกCDocument::SetModifiedFlag) และกรอบจะไม่ทำให้เอกสารถูกบันทึก สำหรับเอกสารที่บันทึกลงในที่ใดที่อื่นที่ไม่ใช่แฟ้มดิสก์ กำหนดคำสั่งใหม่สำหรับการดำเนินการ?
ในกรณีของCOleServerDoc, ID_FILE_SAVEใช้ทั้ง สำหรับแฟ้มบันทึก (สำหรับเอกสารปกติ) และปรับปรุงแฟ้ม (สำหรับเอกสารการฝังตัว)?
ถ้าข้อมูลเอกสารของคุณถูกเก็บไว้ในแฟ้มของแต่ละดิสก์ แต่คุณไม่ต้องการใช้ค่าเริ่มต้น ดำเนินการซีเรียลไลซ์CDocumentคุณควรแทนที่CDocument::OnSaveDocumentแทนของOnFileSave?
CDocument::OnFileSaveAsใช้งานใช้การช่วยเหลือรูทีนเดียวของCDocument::DoSaveเป็นOnFileSave คำสั่งOnFileSaveAsถูกจัดการเหมือนกับID_FILE_SAVEถ้าเอกสารที่มีชื่อไม่มีแฟ้มก่อนการบันทึก COleServerDoc::OnFileSaveAsใช้ตรรกะเพื่อบันทึกแฟ้มข้อมูลเอกสารปกติ หรือการบันทึกเอกสารเซิร์ฟเวอร์ แสดงวัตถุ OLE ฝังในโปรแกรมประยุกต์อื่นเป็นแฟ้มแยกต่างหาก?
ถ้าคุณกำหนดเองตรรกะของID_FILE_SAVEคุณอาจต้องการกำหนดเองID_FILE_SAVE_ASในแฟชั่นคล้ายคลึงกัน หรือการดำเนินการของ "Save As" อาจไม่ได้นำไปใช้กับเอกสารของคุณ คุณสามารถลบรายการเมนูจากแถบเมนูของคุณถ้าไม่จำเป็น?
COleServerDoc::OnFileSaveCopyAsใช้งานจะคล้ายกันมากกับCDocument::OnFileSaveAsยกเว้นว่าวัตถุเอกสารไม่ถูก "แนบ" กับแฟ้มต้นฉบับหลังจากบันทึก กล่าวคือ ถ้าเอกสารในหน่วยความจำถูก "แก้ไข" ก่อนบันทึก มันจะยังคง "ถูกแก้ไข" นอกจากนี้ คำสั่งนี้ไม่มีผลต่อเส้นทางชื่อหรือชื่อเรื่องที่ถูกเก็บไว้ในเอกสาร?
การใช้งานCOleServerDoc::OnUpdateDocument notifiies เพียงแค่ในคอนเทนเนอร์ที่ฝังควรถูกบันทึกไว้ คอนเทนเนอร์แล้วเรียกเหมาะสม OLE APIs เพื่อบันทึกวัตถุฝังตัว?
ในปัจจุบันมีมาตรฐานไม่มีสำหรับกล่องโต้ตอบนี้ และกรอบมีไม่มีการใช้งานเป็นค่าเริ่มต้นของคำสั่งนี้?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCWinApp-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
คำสั่งนี้เรียกใช้เมธกล่องโต้ตอบการตั้งค่าการพิมพ์มาตรฐานที่อนุญาตให้ผู้ใช้สามารถกำหนดเครื่องพิมพ์ และการตั้งค่าสำหรับพิมพ์น้อย เอกสารนี้หรืออย่างมากเอกสารทั้งหมดในแอพลิเคชันนี้ คุณต้องใช้'แผงควบคุม'เพื่อเปลี่ยนการตั้งค่าเครื่องพิมพ์เริ่มต้นสำหรับทั้งระบบ?
CWinApp::OnFilePrintSetupมีการใช้งานที่ง่ายมากสร้างวัตถุCPrintDialogและเรียกใช้งานฟังก์ชันCWinApp::DoPrintDialog นี้ตั้งค่าการตั้งค่าเครื่องพิมพ์เริ่มต้นแอปพลิเคชัน?
ความต้องการทั่วไปสำหรับการกำหนดคำสั่งนี้จะอนุญาตให้ตั้งต่อเอกสารค่าพิมพ์ ซึ่งควรจะเก็บไว้กับเอกสารเมื่อบันทึก การทำเช่นนี้คุณควรเพิ่มตัวจัดการข้อความแผนที่ในคลาCDocumentของคุณที่สร้างวัตถุCPrintDialogงานเตรียมใช้งานกับแอตทริบิวต์เครื่องพิมพ์ที่เหมาะสม (โดยทั่วไปที่hDevModeและhDevNames), CPrintDialog::DoModalในโทร และบันทึกการตั้งค่าเครื่องพิมพ์ที่ถูกเปลี่ยนแปลง สำหรับการใช้งานที่มีเสถียรภาพ คุณควรดูที่การใช้งานCWinApp::DoPrintDialogสำหรับตรวจหาข้อผิดพลาดและCWinApp::UpdatePrinterSelectionสำหรับการจัดการกับสุดค่าเริ่มต้น และติดตามการเปลี่ยนแปลงเครื่องพิมพ์ทั้งระบบ?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCView-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
คำสั่งนี้พิมพ์เอกสารปัจจุบัน หรือเริ่มพิมพ์กระบวนการ ซึ่งเกี่ยวข้องกับการเรียกใช้กล่องโต้ตอบการพิมพ์มาตรฐาน และการเรียกใช้โปรแกรมที่มีการพิมพ์ เพิ่มเติมอย่าง?
CView::OnFilePrintใช้คำสั่งนี้และการพิมพ์วนรอบหลัก เสมือนCView::OnPreparePrintingเพื่อแสดงกล่องโต้ตอบของผู้ใช้กับกล่องโต้ตอบการพิมพ์เรียก มันแล้วเตรียมออก DC เพื่อไปยังเครื่องพิมพ์ แสดงกล่องโต้ตอบความคืบหน้าการพิมพ์ (AFX_IDD_PRINTDLG), และหลีกStartDocส่งไปยังเครื่องพิมพ์ นอกจากนี้CView::OnFilePrintยังประกอบด้วยหลักแนวหน้าพิมพ์ลูป สำหรับแต่ละหน้า เรียกการเสมือนCView::OnPrepareDCตาม ด้วยการหลีกStartPageและเรียกการเสมือนCView::OnPrintสำหรับเพจนั้น เมื่อเสร็จสมบูรณ์ เรียกว่าการเสมือนCView::OnEndPrintingและปิดกล่องโต้ตอบความคืบหน้าการพิมพ์?
MFC พิมพ์สถาปัตยกรรมถูกออกแบบมาเกี่ยวอยู่หลายวิธีที่แตกต่างกันสำหรับการแสดงตัวอย่างก่อนพิมพ์ และพิมพ์ คุณจะปกติพบฟังก์ชัน overridable CViewต่าง ๆ เพียงพอสำหรับงานพิมพ์แนวหน้า เฉพาะในกรณีของโปรแกรมประยุกต์ที่ใช้เครื่องพิมพ์สำหรับผลลัพธ์วางไม่ใช่หน้า ควรคุณค้นหาความต้องการที่แทนการใช้งานID_FILE_PRINT?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCView-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
CView::OnFilePrintPreviewเริ่มทำงานในโหมดตัวอย่างก่อนพิมพ์ โดยการเรียกฟังก์ชันบันทึกเป็นตัวช่วยCView::DoPrintPreview CView::DoPrintPreviewเป็นกลไกหลักสำหรับการวนรอบตัวอย่างก่อนพิมพ์ เหมือนกับOnFilePrintเป็นกลไกหลักสำหรับการวนรอบที่พิมพ์?
การดำเนินการตัวอย่างก่อนพิมพ์สามารถถูกกำหนดเองในหลากหลายวิธี ด้วยการส่งผ่านพารามิเตอร์ต่าง ๆ การDoPrintPreview กรุณาอ้างอิงทางเทคนิคหมายเหตุ 30ซึ่งกล่าวถึงบางรายละเอียดของตัวอย่างก่อนพิมพ์และวิธีการกำหนด?
CWinApp::OnUpdateRecentFileMenuเป็นตัวจัดการ UI คำสั่งโปรแกรมปรับปรุงที่เป็นกลไกในการON_UPDATE_COMMAND_UIใช้ขั้นสูงเพิ่มเติมอย่างใดอย่างหนึ่ง ในทรัพยากรของเมนู คุณเพียงต้องกำหนดรายการเมนูเดียวกับ ID ID_FILE_MRU_FILE1 รายการเมนูที่ยังคงถูกปิดการใช้งานตั้งแต่เริ่มแรก?
เป็นการแสดง รายการเหล่า เมนูเพิ่มเติมรายการจะถูกเพิ่มลงในรายการ เริ่มต้นการใช้งานCWinAppมาตรฐานวงเงินสูงสุดสี่มาตรฐานใช้แฟ้มล่าสุด คุณสามารถเปลี่ยนค่าเริ่มต้น โดยการเรียกCWinApp::LoadStdProfileSettingsด้วยค่ามีขนาดใหญ่ขึ้น หรือเล็กลง MRU รายการจะถูกเก็บไว้ในของโปรแกรมประยุกต์แฟ้ม INI กำลังโหลดรายการในฟังก์ชันInitInstanceการของโปรแกรมประยุกต์ของคุณถ้าคุณโทรLoadStdProfileSettingsและจะถูกบันทึกไว้เมื่อออกจากโปรแกรมประยุกต์ของคุณ ตัวจัดการ UI MRU ปรับปรุงคำสั่งจะแปลงเส้นทางสัมบูรณ์ไปยังเส้นทางสัมพัทธ์ที่แสดงบนเมนูแฟ้ม?
CWinApp::OnOpenRecentFileเป็นตัวจัดการON_COMMANDที่ทำคำสั่งแท้จริง นั้นจะได้รับชื่อแฟ้มจากรายการ MRU และสายCWinApp::OpenDocumentFileที่ทำงานทั้งหมดของการเปิดแฟ้ม และปรับปรุงรายการ MRU เพียง?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้มีการใช้งานคำสั่งนี้ใช้CEdit::Clear คำสั่งใช้ไม่ได้ถ้าไม่มีการเลือกปัจจุบัน?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้รหัสคำสั่งนี้ ดูตัวอย่างบทช่วยสอนเกี่ยวกับ MFC เขียนสำหรับการใช้งานตัวอย่าง?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้มีการใช้งานคำสั่งนี้ ซึ่งคัดลอกข้อความที่เลือกในปัจจุบันไปยังคลิปบอร์ดเป็น CF_TEXT โดยใช้CEdit::Copy คำสั่งใช้ไม่ได้ถ้าไม่มีการเลือกปัจจุบัน?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้มีการใช้งานคำสั่งนี้ ซึ่งตัดข้อความที่เลือกในปัจจุบันไปยังคลิปบอร์ดเป็น CF_TEXT โดยใช้CEdit::Cut คำสั่งใช้ไม่ได้ถ้าไม่มีการเลือกปัจจุบัน?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้มีการใช้งานคำสั่งนี้ ซึ่งเรียกใช้งานตัวช่วยฟังก์ชันOnEditFindReplaceการใช้ และการจัดเก็บการตั้งค่าก่อนหน้านี้ของค้นหา/แทนที่ในตัวแปรส่วนตัวในการใช้งาน คลาCFindReplaceDialogถูกใช้เพื่อจัดการกับกล่องโต้ตอบที่สร้างสำหรับผู้ใช้ให้ใช้?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้มีการใช้งานคำสั่งนี้ ซึ่งคัดลอกข้อมูลคลิปบอร์ดปัจจุบันแทนข้อความที่เลือกโดยใช้CEdit::Paste คำสั่งใช้ไม่ได้ถ้าไม่มีไม่มีCF_TEXTในคลิปบอร์ด?
COleClientDocเพียงแสดงตัวจัดการ UI คำสั่งของโปรแกรมปรับปรุงสำหรับคำสั่งนี้ ถ้าคลิปบอร์ดไม่ประกอบด้วย embeddable สินค้า/วัตถุ OLE คำสั่งจะถูกปิดใช้งาน คุณจะชอบเขียนตัวจัดการคำสั่งแท้จริงเพื่อดำเนินการวางที่แท้จริง ถ้าโปรแกรมประยุกต์ OLE ของคุณยังสามารถวางรูปแบบอื่น ๆ คุณควรให้คำสั่งของคุณเองโปรแกรมปรับปรุงการจัดการ UI ในมุมมองของคุณหรือเอกสาร (นั่นคือ บางก่อนที่COleClientDocในคำสั่งเป้าหมายสายงานการผลิต)?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
สำหรับการแทนการใช้งาน OLE มาตรฐาน ใช้COleClientItem::CanPaste?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
COleDocumentเพียงแสดงตัวจัดการ UI คำสั่งของโปรแกรมปรับปรุงสำหรับคำสั่งนี้ ถ้าคลิปบอร์ดไม่ประกอบด้วย linkable สินค้า/วัตถุ OLE คำสั่งจะถูกปิดใช้งาน คุณจะชอบเขียนตัวจัดการคำสั่งแท้จริงเพื่อดำเนินการวางที่แท้จริง ถ้าโปรแกรมประยุกต์ OLE ของคุณยังสามารถวางรูปแบบอื่น ๆ คุณควรให้คำสั่งของคุณเองโปรแกรมปรับปรุงการจัดการ UI ในมุมมองของคุณหรือเอกสาร (นั่นคือ บางก่อนที่COleDocumentในคำสั่งเป้าหมายสายงานการผลิต)?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
สำหรับการแทนการใช้งาน OLE มาตรฐาน ใช้COleClientItem::CanPasteLink?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลา MFC ไม่มีการแสดงกล่องโต้ตอบนี้?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้มีการใช้งานคำสั่งนี้เพื่อทำซ้ำการดำเนินการค้นหาล่าสุด มีใช้ตัวแปรส่วนตัวในการใช้งานสำหรับการค้นหาล่าสุด คำสั่งใช้ไม่ได้ถ้าไม่ได้พยายามค้นหาสามารถ?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้มีการใช้งานคำสั่งนี้ ซึ่งเรียกใช้งานตัวช่วยฟังก์ชันOnEditFindReplaceการใช้ และการจัดเก็บการตั้งค่าก่อนหน้านี้ของค้นหา/แทนที่ในตัวแปรส่วนตัวในการใช้งาน คลาCFindReplaceDialogถูกใช้เพื่อจัดการกับกล่องโต้ตอบสร้างที่พร้อมท์ให้ผู้ใช้?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้มีการใช้งานคำสั่งนี้ ซึ่งเลือกข้อความทั้งหมดในเอกสาร คำสั่งใช้ไม่ได้ถ้าไม่มีข้อความให้เลือก?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
CEditViewให้ดำเนินการตามคำสั่งนี้ การใช้CEdit::Undo คำสั่งถูกปิดการใช้งานถ้าCEdit::CanUndoส่งกลับ FALSE?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับแต่ละCView-มาคลาส?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
CMDIFrameWnd::OnWindowNewใช้คุณลักษณะนี้มีประสิทธิภาพ โดยใช้แม่แบบเอกสารของเอกสารปัจจุบันการสร้างเฟรมที่อื่นประกอบด้วยอีกมุมมองหนึ่งของเอกสารปัจจุบัน?
เหมือนกับส่วนใหญ่หลายเอกสารติดต่อ (MDI) หน้าต่างเมนูคำสั่ง คำสั่งถูกปิดใช้งานถ้าไม่มีหน้าต่างไม่มีลูก MDI ที่ใช้งานอยู่?
ไม่แนะนำการกำหนดเองของตัวจัดการคำสั่งนี้ ถ้าคุณต้องการให้คำสั่งที่สร้างมุมมองเพิ่มเติมหรือกรอบ windows คุณคงจะดีขึ้นปิด inventing คำสั่งของคุณเอง คุณสามารถโคลนรหัสจากCMDIFrameWnd::OnWindowNewและปรับเปลี่ยนคลาสที่ระบุของเฟรมและมุมมองของที่ชื่นชอบของคุณ?
CMDIFrameWndใช้คำสั่ง MDI มาตรฐานนี้ในฟังก์ชันการช่วยเหลือการใช้งานOnMDIWindowCmd นี้ผู้ช่วยเหลือแมปรหัสคำสั่งข้อความ MDI Windows และดังนั้นสามารถใช้รหัสเป็นจำนวนมาก?
เช่นเดียวกับคำสั่งส่วนใหญ่หน้าต่าง MDI บนเมนู คำสั่งถูกปิดใช้งานถ้าไม่มีหน้าต่างไม่มีลูก MDI ที่ใช้งานอยู่?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
CMDIFrameWndใช้คำสั่ง MDI มาตรฐานนี้ในฟังก์ชันการช่วยเหลือการใช้งานOnMDIWindowCmd นี้ผู้ช่วยเหลือแมปรหัสคำสั่งข้อความ MDI Windows และดังนั้นสามารถใช้รหัสเป็นจำนวนมาก?
เช่นเดียวกับคำสั่งส่วนใหญ่หน้าต่าง MDI บนเมนู คำสั่งถูกปิดใช้งานถ้าไม่มีหน้าต่างไม่มีลูก MDI ที่ใช้งานอยู่?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
มีการใช้งานคำสั่งนี้ในCMDIFrameWndเหมือนID_WINDOW_CASCADEยกเว้น Windows MDI ต่าง ข้อถูกใช้สำหรับการดำเนินงาน?
คุณควรเลือกการวางแนวการจัดเรียงเริ่มต้นสำหรับโปรแกรมประยุกต์ของคุณ คุณสามารถทำได้ โดยการเปลี่ยน ID สำหรับหน้าต่าง "เรียงต่อกัน" รายการเมนูID_WINDOW_TILE_HORZหรือID_WINDOW_TILE_VERT?
มีการใช้งานคำสั่งนี้ในCMDIFrameWndเหมือนID_WINDOW_CASCADEยกเว้น Windows MDI ต่าง ข้อถูกใช้สำหรับการดำเนินงาน?
คุณควรเลือกการวางแนวการจัดเรียงเริ่มต้นสำหรับโปรแกรมประยุกต์ของคุณ คุณสามารถทำได้ โดยการเปลี่ยน ID สำหรับหน้าต่าง "เรียงต่อกัน" รายการเมนูID_WINDOW_TILE_HORZหรือID_WINDOW_TILE_VERT?
CViewจัดการกับคำสั่งนี้สำหรับการใช้งานCSplitterWnd ถ้ามุมมองเป็นส่วนหนึ่งของหน้าต่างแยก คำสั่งนี้จะมอบหมายให้ฟังก์ชันการใช้งานCSplitterWnd::DoKeyboardSplit นี้จะใส่ตัวแยกในโหมดที่จะอนุญาตให้ผู้ใช้แป้นพิมพ์แยก หรือ unsplit แยกหน้าต่าง?
คำสั่งนี้ใช้ไม่ได้ถ้ามุมมองไม่ได้อยู่ในตัวแยกสัญญาณ?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
มีมาตรฐานไม่มีการใช้งานสำหรับโปรแกรมประยุกต์ที่เกี่ยวกับกล่อง โปรแกรมประยุกต์สร้าง AppWizard เริ่มต้นที่จะสร้างคลาโต้ตอบแบบกำหนดเองสำหรับโปรแกรมประยุกต์ของคุณ และใช้เป็นกล่องของคุณเกี่ยวกับ AppWizard จะยังเขียนตัวจัดการคำสั่ง trivial ซึ่งคำสั่งนี้จัดการกับ และกล่องโต้ตอบการเรียกใช้เมธ?
คุณเกือบจะตลอดเวลาจะใช้คำสั่งนี้?
CWinApp::OnAppExitจัดการกับคำสั่งนี้ ด้วยการส่งข้อความWM_CLOSEกับหน้าต่างหลักของโปรแกรมประยุกต์ มาตรฐานการปิดแอปพลิเคชัน (พร้อมท์สำหรับแฟ้มที่สกปรกและ) ถูกจัดการ โดยใช้งานCFrameWnd?
ไม่แนะนำการกำหนดเองของตัวจัดการคำสั่งนี้ แทนที่CWinApp::SaveAllModifiedหรือCFrameWndปิดตรรกะจะแนะนำ?
ถ้าคุณเลือกที่จะใช้คำสั่งนี้ เราแนะนำให้คุณใช้ ID คำสั่งนี้?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCWinApp-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
CWinApp::OnHelpIndexการจัดการกับคำสั่งนี้ โดย trivially โทรCWinApp::WinHelp?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCWinApp-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
CWinApp::OnHelpUsingการจัดการกับคำสั่งนี้ โดย trivially โทรCWinApp::WinHelp?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCWinApp-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
CWinApp::OnContextHelpจัดการคำสั่งนี้ โดยตั้งค่าเคอร์เซอร์โหมดวิธีใช้ การป้อนวนโมดอล และรอให้ผู้ใช้เลือกหน้าต่างเพื่อขอความช่วยเหลือบน กรุณาอ้างอิงถึง28 หมายเหตุทางเทคนิคสำหรับรายละเอียดเพิ่มเติมในการใช้งานวิธีใช้ MFC?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCWinApp-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
CWinApp::OnHelpจัดการคำสั่งนี้ โดยรับบริบทความช่วยเหลือสำหรับบริบทของโปรแกรมประยุกต์ในปัจจุบัน นี้จัดการกับวิ F1 วิธีใช้ วิธีใช้ในกล่องข้อความและ กรุณาอ้างอิงถึง28 หมายเหตุทางเทคนิคสำหรับรายละเอียดเพิ่มเติมในการใช้งานวิธีใช้ MFC?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
หมายเหตุnbsp คุณต้องเชื่อมต่อนี้ไปของคุณCWinApp-ได้รับการแมปข้อความของคลาสเพื่อเปิดใช้งานฟังก์ชันนี้(&N)?
คำสั่งนี้มักจะถูกแมปไปยังCWinApp::OnHelpIndex?
ตัวจัดการคำสั่งที่แตกต่างกันสามารถให้ถ้าต้องการแตกต่างระหว่างการเริ่มต้นวิธีใช้และวิธีใช้ดัชนี?
CViewจัดการกับคำสั่งนี้สำหรับการใช้งานCSplitterWnd ถ้ามุมมองเป็นส่วนหนึ่งของหน้าต่างแยก คำสั่งนี้จะมอบหมายให้ฟังก์ชันการใช้งานCSplitterWnd::OnNextPaneCmd นี้จะเลื่อนมุมมองใช้งานอยู่ไปยังบานหน้าต่างถัดไปในตัวแยก?
คำสั่งนี้ใช้ไม่ได้ถ้ามุมมองไม่ได้อยู่ในตัวแยกสัญญาณ หรือไม่มีไม่มีบานหน้าต่างถัดไป?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
CViewจัดการกับคำสั่งนี้สำหรับการใช้งานCSplitterWnd ถ้ามุมมองเป็นส่วนหนึ่งของหน้าต่างแยก คำสั่งนี้จะมอบหมายให้ฟังก์ชันการใช้งานCSplitterWnd::OnNextPaneCmd นี้จะเลื่อนมุมมองใช้งานอยู่ไปยังบานหน้าต่างก่อนหน้าในตัวแยก?
คำสั่งนี้ใช้ไม่ได้ถ้ามุมมองไม่ได้อยู่ในตัวแยกสัญญาณ หรือไม่มีไม่มีบานหน้าต่างก่อนหน้าไป?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานคำสั่งนี้ คุณต้องปฏิบัตินี้สำหรับคุณCView-มาคลาการแทรกแบบใหม่สินค้า/วัตถุ OLE ที่เลือกในปัจจุบัน?
แอปพลิเคชันไคลเอนต์ของ OLE แบบทั้งหมดควรใช้คำสั่งนี้ AppWizard ตัวเลือก OLE จะสร้างการดำเนินการโครงกระดูกของOnInsertObjectในคลาสมุมมองของคุณซึ่งคุณจะต้องทำให้เสร็จสมบูรณ์?
ดู MFC OLE อย่าง OCLIENTตัวอย่างการใช้งานที่สมบูรณ์ของคำสั่งนี้?
COleDocumentจัดการคำสั่งนี้ โดยใช้ MFC เตรียมไว้ใช้งานของกล่องโต้ตอบเชื่อมโยง OLE มาตรฐาน การใช้งานในกล่องโต้ตอบนี้มีการเข้าถึงผ่านชั้นCOleLinksDialog ถ้าเอกสารปัจจุบันไม่ประกอบด้วยการเชื่อมโยง คำสั่งถูกปิดการใช้งาน?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
COleDocumentใช้ช่วงนี้ ID คำสั่งสำหรับคำกริยาได้รับการสนับสนุน โดยการเลือกในปัจจุบันสินค้า/วัตถุ OLE นี้ต้องอยู่ในช่วงตั้งแต่ชนิดของสินค้า/วัตถุ OLE ที่กำหนดสามารถสนับสนุนคำกริยาเป็นศูนย์ หรือเพิ่มเติมแบบกำหนดเอง ในเมนูของโปรแกรมประยุกต์ของคุณ คุณควรมีหนึ่งรายการเมนู ด้วย ID ของID_OLE_VERB_FIRST เมื่อมีรันโปรแกรม เมนูจะถูกปรับปรุง ด้วยคำอธิบายของเมนูที่เหมาะสมคำกริยา (หรือเมนูแบบผุดขึ้น ด้วยหลายคำกริยา) การจัดการเมนู OLE ถูกจัดการโดยAfxOleSetEditMenuดำเนินการในตัวจัดการ UI คำสั่งโปรแกรมปรับปรุงสำหรับคำสั่งนี้?
มีไม่มีตัวจัดการคำสั่งที่ชัดเจนสำหรับการจัดการแต่ละคำสั่ง ID ในช่วงนี้ COleDocument::OnCmdMsgถูกลบล้างไปดักจับรหัสคำสั่งทั้งหมดในช่วงนี้ เปิดมาเป็นตัวเลขของคำกริยา zero-based และเปิดใช้เซิร์ฟเวอร์สำหรับกริยานั้น (โดยใช้COleClientItem::DoVerb)?
การกำหนดเองหรือการใช้ช่วงนี้ ID คำสั่งอื่น ๆ ไม่แนะนำ?
CFrameWndจัดการคำสั่งนี้และตัวจัดการ UI คำสั่ง update เพื่อสลับสถานะการมองเห็นแถบเครื่องมือ แถบเครื่องมือต้องเป็นหน้าต่างลูกของเฟรม ด้วย ID หน้าต่างของเด็กของAFX_IDW_TOOLBAR ตัวจัดการคำสั่งจริงสลับการแสดงผลของแถบเครื่องมือหน้าต่าง CFrameWnd::RecalcLayoutใช้ในการออกตั๋วใหม่แถบเครื่องมือหน้าต่างเฟรมในสถานะใหม่ ตัวจัดการ UI คำสั่ง update ตรวจสอบรายการเมนูเมื่อแถบเครื่องมือที่ปรากฏอยู่?
ไม่แนะนำการกำหนดเองของตัวจัดการคำสั่งนี้ ถ้าคุณต้องการเพิ่มแถบเครื่องมือเพิ่มเติม คุณจะต้องการโคลน และการปรับเปลี่ยนตัวจัดการคำสั่งและตัวจัดการคำสั่ง update UI สำหรับคำสั่งนี้?
คำสั่งนี้จะดำเนินการในCFrameWndเหมือนID_VIEW_TOOLBARยกเว้นใช้เด็กอื่นหน้าต่าง ID (AFX_IDW_STATUS_BAR)?
ตัวจัดการคำสั่งปรับปรุงเท่านั้น
มีหลายคำสั่งมาตรฐานรหัสที่ใช้เป็นตัวบ่งชี้ในแถบสถานะ เหล่านี้ใช้เหมือนกับ UI คำสั่งปรับปรุงกลไกการจัดการเพื่อแสดงสถานะภาพของปัจจุบันในระหว่างเวลาที่ว่างของแอพลิเคชัน เนื่องจากพวกเขาไม่สามารถเลือก โดยผู้ใช้ (นั่นคือ คุณไม่สามารถดันบานหน้าต่างแถบสถานะ), จาก นั้นจึงทำให้ไม่มีเหตุผลที่ต้องมีการจัดการON_COMMANDสำหรับเหล่านี้รหัสคำสั่ง?
ทั้งสามเหล่านี้จะถูกนำมาใช้ในCFrameWnd::OnUpdateKeyIndicatorผู้ช่วยเหลือการใช้งานที่ใช้ใน ID สั่งการแมปไปยังคีย์เสมือนที่เหมาะสม การใช้งานทั่วไปเปิดใช้งาน หรือปิดใช้งาน (บานหน้าต่างสถานะที่ถูกปิดใช้งาน =ไม่มีข้อความ) วัตถุCCmdUIทั้งนี้ขึ้นอยู่กับว่าคีย์การเสมือนที่เหมาะสมถูกล็อกไว้ในปัจจุบัน?
การกำหนดเองของตัวจัดการคำสั่งนี้ไม่แนะนำ?
ในปัจจุบันมีมาตรฐานไม่มีการใช้งานสำหรับตัวบ่งชี้การทำงานเหล่านี้?
ถ้าคุณเลือกที่จะใช้ตัวบ่งชี้นี้ เราแนะนำให้คุณใช้รหัสเหล่านี้ตัวบ่งชี้และการรักษาสั่งซื้อของตัวบ่งชี้ที่ในแถบสถานะของคุณ (นั่นคือ ในใบสั่งนี้: EXT, CAP, NUM, SCRL, OVR, REC)?
หมายเหตุด้านเทคนิคตามหมายเลข|nbsp หมายเหตุด้านเทคนิคตามประเภท(&N)