เสมือน BOOL OnOpenDocument ( LPCTSTR lpszPathName );
ส่งกลับค่า
ไม่ใช่ศูนย์ถ้า โหลดเอกสารเสร็จสมบูรณ์แล้ว 0 อื่น?
พารามิเตอร์
lpszPathName
ชี้ไปที่เส้นทางของเอกสารที่จะถูกเปิด?
หมายเหตุ
เรียกตามกรอบที่เป็นส่วนหนึ่งของคำสั่งที่เปิดแฟ้มนั้น เริ่มต้นใช้งานฟังก์ชันนี้เปิดแฟ้มที่ระบุ เรียกฟังก์ชันDeleteContentsสมาชิกเพื่อให้แน่ใจว่า เอกสารว่างเปล่า เรียกCObject::Serializeในการอ่านเนื้อหาของแฟ้ม แล้ว ทำเครื่องหมายเอกสารเป็นสะอาด แทนที่ฟังก์ชันนี้ถ้าคุณต้องการใช้สิ่งอื่นนอกจากกลไกในการเก็บถาวรหรือกลไกในแฟ้ม ตัวอย่างเช่น คุณอาจเขียนโปรแกรมประยุกต์ที่เอกสารแสดงระเบียนในฐานข้อมูลแทนที่เป็นแฟ้มแยกต่างหาก?
ถ้าผู้ใช้เลือกที่คำสั่งเปิดแฟ้มในโปรแกรมประยุกต์ของ SDI กรอบใช้ฟังก์ชันนี้ในการเตรียมใช้งานใหม่ของวัตถุที่มีอยู่CDocumentแทนที่จะสร้างใหม่ ถ้าผู้ใช้เลือกเปิดแฟ้มในโปรแกรมประยุกต์ MDI กรอบโครงสร้างวัตถุCDocumentใหม่แต่ละครั้ง และเรียกใช้ฟังก์ชันนี้ในการเตรียมใช้งานได้แล้ว คุณต้องใส่รหัสเริ่มต้นของคุณในฟังก์ชันนี้แทนที่เป็นในการกำหนดคำสั่งเปิดแฟ้มจะมีผลบังคับใช้ในโปรแกรมประยุกต์ของ SDI?
ตัวอย่าง
/ / ตัวอย่างต่อไปนี้แสดงวิธีอื่น
/ / เตรียมใช้งานวัตถุเอกสาร
/ / วิธีที่ 1: ในโปรแกรมประยุกต์ MDI สถานที่ที่ง่ายที่สุดทำอย่างไร / / การเตรียมใช้งานอยู่ใน constructor.nbsp เอกสาร กรอบ / / เสมอสร้างวัตถุเอกสารใหม่สำหรับแฟ้มใหม่หรือเปิดแฟ้ม
CMyDoc::CMyDoc()
{
/ / ทำการเตรียมใช้งานเอกสาร MDI ในที่นี่
// ...
}
/ / วิธีที่ 2: ในแอพพลิเคชัน SDI หรือ MDI ทำการเตรียมใช้งานทั้งหมด / / ในการแทนที่ของ OnNewDocument ถ้าคุณมั่นใจ
/ / เตรียมใช้งานจะถูกบันทึกเมื่อบันทึกแฟ้มได้อย่างมีประสิทธิภาพ
/ / และทั้งคืนเมื่อเปิดแฟ้ม ผ่านทางอนุกรม
BOOL CMyDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument(&))
ส่งกลับค่า FALSE
/ / ทำการเตรียมใช้งานเอกสารใหม่ที่นี่
ส่งกลับ TRUE
}
/ / วิธีที่ 3: การเตรียมใช้งานเอกสารของคุณไม่ใช่
/ / บันทึก และคืนค่า ด้วยอนุกรม (ระหว่างการบันทึกแฟ้ม
/ / และ เปิดแฟ้ม), แล้ว ใช้เตรียมใช้งานในที่เดียว
/ / ฟังก์ชัน (ชื่อ InitMyDocument ในตัวอย่างนี้) เรียกตัว
/ / เตรียมใช้งานฟังก์ชันจากแทนทั้งสองที่ใช้ร่วมกัน
/ / OnNewDocument และ OnOpenDocument
BOOL CMyDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
ส่งกลับค่า FALSE
InitMyDocument() / / เรียกใช้ฟังก์ชันการเตรียมใช้งานที่ใช้ร่วมกันของคุณ
/ / ถ้าวัตถุเอกสารของคุณใหม่ต้องมีการเตรียมใช้งานเพิ่มเติม
/ / ไม่จำเป็นเมื่อเอกสารถูก deserialized ผ่าน File Open
/ / ทำการเริ่มต้นที่เพิ่มเติมที่นี่
ส่งกลับ TRUE
}
ภาพรวม CDocument |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::OnNewDocument, CDocument::OnSaveDocument, CDocument::ReportSaveLoadException, CObject::Serialize(&N)