CFrameWnd

คลาCFrameWndแสดงการทำงานของเอกสารเดี่ยวเทอร์ Windows (SDI) คาบหรือหน้าต่างแบบผุดขึ้นกรอบ พร้อม ด้วยสมาชิกสำหรับการจัดการหน้าต่าง?
เมื่อต้องการสร้างหน้าต่างเฟรมที่เป็นประโยชน์สำหรับโปรแกรมประยุกต์ของคุณ ชั้นที่สืบทอดมาจากCFrameWnd เพิ่มสมาชิกตัวแปรคลาสได้รับการจัดเก็บข้อมูลเฉพาะสำหรับโปรแกรมประยุกต์ของคุณ ทำข้อความจัดการฟังก์ชันสมาชิกและข้อความที่แมปในชั้นเรียนได้รับการระบุสิ่งที่เกิดขึ้นเมื่อข้อความจะถูกนำไปหน้าต่าง?
มีสามวิธีในการสร้างกรอบหน้าต่าง:
-
สร้างได้โดยใช้การสร้างโดยตรง?
-
สร้างโดยตรงโดยใช้LoadFrame?
-
ทางอ้อมให้ก่อสร้างได้โดยใช้แม่แบบเอกสาร?
ก่อนที่คุณเรียกใช้ตัวสร้างหรือLoadFrameคุณต้องสร้างเฟรมหน้าต่างวัตถุบนกองใช้ตัวดำเนินการใหม่c ++ ก่อนที่จะสร้างการโทร คุณยังสามารถลงทะเบียนคลาหน้าต่าง ด้วยฟังก์ชันสากลAfxRegisterWndClassเพื่อตั้งค่าลักษณะไอคอนและคลาสสำหรับเฟรม?
ใช้ฟังก์ชันสร้างสมาชิกผ่านของเฟรมสร้างพารามิเตอร์เป็นอาร์กิวเมนต์ทันที?
LoadFrameต้องใช้อาร์กิวเมนต์ที่น้อยลงกว่าสร้างและแทน ดึงส่วนใหญ่ค่าเริ่มต้นมาจากทรัพยากร การรวมถึงเฟรมป้ายคำอธิบาย ไอคอน ตารางการเร่งความเร็ว และเมนู เพื่อที่สามารถเข้าถึงได้โดยLoadFrameทรัพยากรเหล่านี้ทั้งหมดต้องมี ID ทรัพยากรเดียวกัน (ตัวอย่างเช่นIDR_MAINFRAME)?
เมื่อวัตถุของCFrameWndประกอบด้วยมุมมองและเอกสาร มีสร้างทางอ้อม ด้วยกรอบแทนโดยตรงโดยโปรแกรมเมอร์ที่ วัตถุCDocTemplate orchestrates การสร้างเฟรม การสร้างมุมมองประกอบด้วย และการเชื่อมต่อของมุมมองไปยังเอกสารที่เหมาะสม พารามิเตอร์ของพารามิเตอร์CDocTemplateที่ระบุในCRuntimeClassของชั้นที่สามเกี่ยวข้อง (เอกสาร กรอบ และมุมมอง) วัตถุCRuntimeClassใช้โดยกรอบงานเพื่อสร้างเฟรมใหม่เมื่อระบุ โดยผู้ใช้ (เช่น โดยการใช้คำสั่งแฟ้มใหม่หรือหลายเอกสารติดต่อ (MDI) หน้าต่างใหม่สั่ง)?
-กรอบหน้าต่างชั้นมาจากCFrameWndต้องถูกประกาศด้วยDECLARE_DYNCREATEเพื่อให้กลไกการRUNTIME_CLASSข้างต้นในการทำงานอย่างถูกต้อง?
CFrameWndประกอบด้วยการเริ่มต้นใช้งานเพื่อทำหน้าที่ของหน้าต่างหลักในโปรแกรมประยุกต์ทั่วไปสำหรับ Windows:
-
CFrameWndกรอบหน้าต่างจะติดตามของมุมมองที่ใช้งานอยู่ในขณะนี้ที่เป็นอิสระจากหน้าต่างที่ใช้งาน Windows หรือโฟกัสป้อนข้อมูลปัจจุบัน เมื่อเฟรมเป็น reactivated มุมมองที่ใช้งานอยู่จะได้รับแจ้ง โดยการเรียกCView::OnActivateView?
-
มอบคำสั่งข้อความและหลายเฟรมแจ้งข้อทั่วไป รวมทั้งจัดการ โดยOnSetFocus, OnHScrollและฟังก์ชันCWnd, OnVScrollโดยCFrameWndกรอบหน้าต่างในมุมมองที่ใช้งานอยู่ในขณะนี้?
-
มุมมองที่ใช้งานอยู่ในขณะนี้ (หรือใช้งานอยู่ในขณะนี้เด็กกรอบหน้าต่าง MDI ในกรณีของเฟรมอิน MDI) สามารถกำหนดคำอธิบายเฉพาะของหน้าต่างเฟรม คุณลักษณะนี้สามารถถูกปิดใช้งาน โดยการปิดบิตลักษณะการFWS_ADDTOTITLEของหน้าต่างเฟรม?
-
CFrameWndกรอบหน้าต่างจัดการการจัดตำแหน่งของแถบควบคุม มุมมอง และ windows เด็กอื่น ๆ ภายในพื้นที่ของกรอบหน้าต่างของไคลเอ็นต์ หน้าต่างเฟรมยังไม่มีการปรับปรุงที่ไม่ได้ใช้เวลาของแถบเครื่องมือและปุ่มแถบควบคุมอื่น ๆ CFrameWndกรอบหน้าต่างยังมีค่าเริ่มต้นการใช้งานของคำสั่งสำหรับ toggling และ ปิดแถบแถบเครื่องมือและสถานะ?
-
CFrameWndกรอบหน้าต่างจัดการแถบเมนูหลัก เมื่อมีแสดงเมนูแบบผุดขึ้น หน้าต่างเฟรมใช้กลไกที่UPDATE_COMMAND_UIเพื่อตรวจสอบรายการเมนูใดควรเปิดใช้ ปิดการใช้งาน หรือการตรวจสอบ เมื่อผู้ใช้เลือกรายการเมนู กรอบหน้าต่างปรับปรุงแถบสถานะ ด้วยสายอักขระข้อความสำหรับคำสั่งนั้น?
-
CFrameWndกรอบหน้าต่างมีตารางที่มีการเร่งความเร็วหรือไม่ก็แปล accelerators แป้นพิมพ์โดยอัตโนมัติ?
-
CFrameWndกรอบหน้าต่างได้มีทางเลือกช่วยกำหนดกับLoadFrameที่ใช้สำหรับวิธีใช้ตามบริบท ID หน้าต่างเฟรมเป็น orchestrator ที่หลักของรัฐ semimodal เช่นวิธีใช้ตามบริบท (SHIFT + F1) และโหมดการแสดงตัวอย่างก่อนพิมพ์?
-
CFrameWndกรอบหน้าต่างจะเปิดแฟ้มลากจากตัวจัดการแฟ้ม และหลุดกรอบหน้าต่าง ถ้ามีส่วนขยายของแฟ้มเป็นการลงทะเบียน และเกี่ยวข้องกับแอพลิเคชัน หน้าต่างเฟรมตอบสนองต่อการร้อง dynamic data exchange (DDE) เปิดขอที่เกิดขึ้นเมื่อผู้ใช้เปิดแฟ้มข้อมูลในตัว จัดการแฟ้ม หรือ เมื่อการเรียกฟังก์ชัน Windows ShellExecute?
-
ถ้าหน้าต่างกรอบ หน้าต่างโปรแกรมประยุกต์หลัก (นั่นคือCWinThread::m_pMainWnd), เมื่อผู้ใช้ปิดโปรแกรมประยุกต์ หน้าต่างเฟรมจะแจ้งให้ผู้ใช้บันทึกเอกสารแก้ไขใด ๆ (สำหรับOnCloseและOnQueryEndSession)?
-
ถ้าหน้าต่างกรอบ หน้าต่างโปรแกรมประยุกต์หลัก หน้าต่างเฟรมเป็นบริบทสำหรับการเรียกใช้ WinHelp ปิดหน้าต่างเฟรมจะปิด WINHELPEXE ถ้ามันถูกเปิดใช้สำหรับวิธีใช้สำหรับโปรแกรมประยุกต์นี้?
ใช้ตัวดำเนินลบc ++ทำลายกรอบหน้าต่าง ใช้CWnd::DestroyWindowแทน การใช้งานCFrameWndของPostNcDestroyจะลบวัตถุ c ++เมื่อหน้าต่างถูกทำลาย เมื่อผู้ใช้ปิดหน้าต่างเฟรม ตัวจัดการOnCloseเริ่มต้นจะเรียกDestroyWindow?
ดูข้อมูลเพิ่มเติมบนCFrameWnd, หัวข้อหน้าต่างเฟรมin Visual c ++ Programmer ของรายการแนะนำ?
#รวม lt;afxwin.h>
สมาชิกของคลาส|nbsp คลาสพื้นฐาน| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCWnd, CMDIFrameWnd, CMDIChildWnd, CView, CDocTemplate, CRuntimeClass(&N)