CSplitterWnd

คลาCSplitterWndให้การทำงานของหน้าต่างแยก ซึ่งเป็นหน้าต่างที่ประกอบด้วยบานหน้าต่างต่าง ๆ โดยปกติจะเป็นบานหน้าต่างวัตถุเฉพาะโปรแกรมประยุกต์ที่ได้รับมาจากCViewแต่สามารถมีวัตถุใด ๆCWndที่มี ID หน้าต่างของเด็กที่เหมาะสม?

มักจะมีการฝังตัววัตถุCSplitterWndในแบบCFrameWndหรือCMDIChildWndวัตถุแม่ สร้างวัตถุCSplitterWndโดยใช้ขั้นตอนต่อไปนี้:

  1. ฝังตัวแปรเป็นสมาชิกของCSplitterWndในเฟรมหลัก?

  2. แทนที่ฟังก์ชันสมาชิกของCFrameWnd::OnCreateClientของเฟรมหลัก?

  3. จากภายในตัว overridden OnCreateClientเรียกฟังก์ชันสมาชิกสร้างหรือCreateStaticของCSplitterWnd?

เรียกใช้ฟังก์ชันสมาชิกสร้างสร้างหน้าต่างแยกแบบไดนามิก หน้าต่างแยกแบบไดนามิกโดยทั่วไปใช้ในการสร้าง และเลื่อนตัวเลขของแต่ละบานหน้าต่าง หรือมุมมอง เอกสารเดียวกัน กรอบบานหน้าต่างการเริ่มต้นสำหรับตัวแยก ที่สร้างโดยอัตโนมัติ กรอบสร้าง ปรับขนาด แล้ว disposes ของบานหน้าต่างเพิ่มเติม ตามที่ผู้ใช้ตัวควบคุมของหน้าต่างแยกการดำเนินงาน?

เมื่อคุณเรียกใช้สร้างคุณต้องระบุในแถวต่ำสุดความสูงและความกว้างคอลัมน์ที่กำหนดเมื่อบานหน้าต่างที่มีขนาดเล็กเกินไปที่จะแสดงอย่างเต็ม หลังจากที่คุณเรียกใช้สร้างคุณสามารถปรับต่ำเหล่านี้ โดยการเรียกSetColumnInfoและSetRowInfoสมาชิกฟังก์ชัน?

นอกจากนี้ ใช้ฟังก์ชันสมาชิกSetColumnInfoและSetRowInfoเพื่อตั้งค่าความกว้างคอลัมน์ "เหมาะ" และ "เหมาะ" ความสูงของแถว เมื่อกรอบแสดงหน้าต่างแยก แรกแสดงเฟรมแม่ แล้วแยกหน้าต่าง กรอบ lays แล้วออกจากบานหน้าต่างในคอลัมน์และแถวตามขนาดเหมาะสมที่สุดของพวกเขา ทำงานจากด้านบนซ้ายไปยังมุมล่างขวาของหน้าต่างแยกไคลเอนต์พื้นที่?

บานหน้าต่างทั้งหมดในหน้าต่างที่แยกแบบไดนามิกต้องมีชั้นเดียวกัน โปรแกรมประยุกต์ที่คุ้นเคยที่สนับสนุน windows แยกแบบไดนามิกรวมถึง Microsoft Word และ Microsoft Excel?

ใช้ฟังก์ชันCreateStaticสมาชิกสร้างคงแยกหน้าต่าง ผู้ใช้สามารถเปลี่ยนขนาดของบานหน้าต่างในตัวแยกสัญญาณคงหน้าต่าง ไม่ความหมายเลข หรือใบสั่งเท่านั้น?

คุณต้องสร้างบานหน้าต่างทั้งหมดตัวคงแยกของโดยเฉพาะเมื่อคุณสร้างตัวแยกแบบสแตติก ให้แน่ใจว่า คุณสร้างบานหน้าต่างทั้งหมดของเฟรมหลักOnCreateClientสมาชิกก่อนที่จะส่งกลับฟังก์ชัน หรือกรอบจะไม่แสดงหน้าต่างได้อย่างถูกต้อง?

ฟังก์ชันCreateStaticสมาชิกเริ่มต้นตัวแยกสัญญาณคง มีแถวต่ำสุดความสูงและความกว้างคอลัมน์ 0 โดยอัตโนมัติ หลังจากที่คุณเรียกใช้สร้างปรับต่ำเหล่านี้ โดยการเรียกSetColumnInfoและSetRowInfoสมาชิกฟังก์ชัน ยัง ใช้SetColumnInfoและSetRowInfoหลังจากที่คุณเรียกใช้CreateStaticเพื่อระบุว่า มิติในบานหน้าต่างที่เหมาะสมที่สุดที่ต้องการ?

แต่ละบานหน้าต่างของตัวแยกสัญญาณคงมักเป็นของระดับชั้นที่แตกต่างกัน สำหรับตัวอย่างของ windows แบบคงแยก ดูตัวแก้ไขกราฟิกและตัวจัดการแฟ้มของ Windows?

แยกหน้าต่างสนับสนุนแถบเลื่อนที่พิเศษ (นอกจากแถบเลื่อนที่อาจมีบานหน้าต่าง) แถบเลื่อนนี้เป็นเด็กของวัตถุCSplitterWndและใช้ร่วมกันกับบานหน้าต่าง?

คุณสร้างแถบเลื่อนที่พิเศษเหล่านี้เมื่อคุณสร้างตัวแยกหน้าต่าง ตัวอย่าง การCSplitterWndที่มีหนึ่งแถว คอลัมน์สองคอลัมน์ และลักษณะWS_VSCROLLจะแสดงแถบเลื่อนแนวตั้งที่ใช้ร่วมกัน โดยสองบานหน้าต่าง เมื่อผู้ใช้ย้ายแถบเลื่อนWM_VSCROLLข้อความถูกส่งไปยังบานหน้าต่างทั้งสอง เมื่อบานหน้าต่างตั้งค่าแถบเลื่อนตำแหน่ง มีการตั้งค่าแถบเลื่อนที่ใช้ร่วมกัน?

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ windows แยก ดู29 หมายเหตุทางเทคนิค สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างตัวแยกแบบไดนามิก windows ดูเพิ่มแยกหน้าต่างการเขียนใน เพิ่มมุมมองในVisual c ++ Tutorialsและตัวอย่างทั่วไปของ MFC VIEWEX?

#รวม lt;afxext.h>

สมาชิกของคลาส|nbsp คลาสพื้นฐาน| แผนภูมิของลำดับชั้น(&N)

ตัวอย่างnbsp MFC อย่าง VIEWEX(&N)

ดูเพิ่มเติมnbspCView, CWnd(&N)

Index