CDocument::OnOpenDocument

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

Index