CComboBox
คลาCComboBox แสดงการทำงานของกล่องคำสั่งผสมของ Windows?
กล่องคำสั่งผสมประกอบด้วยกล่องรายการรวมกับการคงตัวควบคุมหรือตัวควบคุมการแก้ไข ส่วนกล่องรายการของตัวควบคุมอาจแสดงอยู่ตลอดเวลา หรืออาจหล่นลงเฉพาะเมื่อผู้ใช้เลือกลูกศรหล่นลงถัดจากตัวควบคุม?
ขณะนี้รายการที่เลือก (ถ้ามี) ในกล่องรายการจะแสดงอยู่ในคง หรือตัวควบคุมแก้ไข นอกจากนี้ ถ้ากล่องคำสั่งผสมมีลักษณะรายการแบบหล่นลง ผู้ใช้สามารถพิมพ์อักขระตัวแรกของรายการหนึ่งในรายการ และกล่องรายการ ถ้าเห็น จะเน้นรายการถัดไปที่อักขระตัวแรก?
ตารางต่อไปนี้เปรียบเทียบ.nbspลักษณะ ในกล่องคำสั่งผสมที่สาม(&N);
ลักษณะ
เมื่อมีกล่องรายการสามารถมองเห็นได้?
คงหรือแก้ไขตัวควบคุม?
วิ
เสมอ
แก้ไข
แบบหล่นลง
เมื่อหล่นลงมา
แก้ไข
รายการแบบหล่นลง
เมื่อหล่นลงมา
คง
คุณสามารถสร้างวัตถุCComboBox ได้ จากต้นแบบการโต้ตอบ หรือ ในรหัสของคุณโดยตรง ในทั้งสองกรณี แรกเรียกการกำหนดCComboBox เพื่อสร้างวัตถุCComboBox แล้ว เรียกใช้ฟังก์ชันสมาชิกสร้าง เพื่อสร้างตัวควบคุม และแนบไปยังวัตถุCComboBox ?
ถ้าคุณต้องการจัดการข้อความแจ้งเตือนของ Windows ถูกส่ง โดยกล่องคำสั่งผสมเพื่อของแม่ (มักจะเป็นคลามาจากCDialog ), เพิ่มข้อความแผนผังรายการและข้อความจัดการสมาชิกฟังก์ชันคลาหลักสำหรับแต่ละข้อความ?
แต่ละรายการของข้อความแผนที่ใช้แบบฟอร์มต่อไปนี้:
ON_ ( แจ้งหมายเลข , memberFxn )
โดยที่รหัส ระบุ ID หน้าต่างลูกของตัวควบคุมกล่องคำสั่งผสมที่ส่งการแจ้งเตือนและmemberFxn คือชื่อของฟังก์ชันสมาชิกหลักคุณได้เขียนเพื่อจัดการการแจ้งเตือน?
แบบตัวอย่างฟังก์ชันของผู้ปกครองจะเป็นดังนี้:
afx_msg โมฆะ memberFxn ( );
ใบสั่งซึ่งแน่นอนการแจ้งเตือนจะถูกส่งไปไม่สามารถทำนาย โดยเฉพาะ การแจ้งเตือนCBN_SELCHANGE อาจเกิดขึ้นก่อน หรือหลัง จากการแจ้งเตือนCBN_CLOSEUP ?
อาจเกิดข้อความแผนผังรายการมีดังนี้:
ON_CBN_CLOSEUP nbsp (Windows 3.1 และรุ่นที่ใหม่กว่านี้) ปิดกล่องรายการของกล่องคำสั่งผสม ไม่มีส่งข้อความแจ้งเตือนนี้สำหรับกล่องคำสั่งผสมที่มีลักษณะCBS_SIMPLE (&N)?
ON_CBN_DBLCLK nbsp ผู้ใช้ดับเบิลคลิสตในกล่องรายการของกล่องคำสั่งผสม เท่านั้นมีส่งข้อความแจ้งเตือนนี้สำหรับกล่องคำสั่งผสมกับลักษณะCBS_SIMPLE สำหรับกล่องคำสั่งผสมกับลักษณะCBS_DROPDOWN หรือCBS_DROPDOWNLIST คลิกสองครั้งไม่สามารถเกิดได้เนื่องจากการคลิกเพียงครั้งเดียวซ่อนกล่องรายการ(&N)?
ON_CBN_DROPDOWN nbsp กล่องรายการของกล่องคำสั่งผสมจะหล่นลง (จะทำให้มองเห็น) ข้อความแจ้งเตือนนี้สามารถเกิดขึ้นได้เฉพาะสำหรับกล่องคำสั่งผสมกับลักษณะCBS_DROPDOWN หรือCBS_DROPDOWNLIST (&N)?
ON_CBN_EDITCHANGE nbsp ผู้ใช้ที่ได้ดำเนินการกระทำที่อาจมีการเปลี่ยนแปลงข้อความในตัวควบคุมการแก้ไขส่วนของกล่องคำสั่งผสม แตกต่างจากข้อความCBN_EDITUPDATE ข้อความนี้ถูกส่งหลังจากหน้าจอการปรับปรุง Windows จะไม่ส่งถ้ากล่องคำสั่งผสมมีลักษณะCBS_DROPDOWNLIST (&N)?
ON_CBN_EDITUPDATE nbsp ส่วนตัวควบคุมการแก้ไขของกล่องคำสั่งผสมจะแสดงข้อความที่มีการเปลี่ยนแปลง ข้อความแจ้งเตือนนี้ถูกส่งหลัง จากตัวควบคุมได้จัดรูปแบบข้อความ แต่ ก่อนที่จะแสดงข้อความ จะไม่ส่งถ้ากล่องคำสั่งผสมมีลักษณะCBS_DROPDOWNLIST (&N)?
ON_CBN_ERRSPACE nbsp กล่องคำสั่งผสมไม่สามารถจัดสรรหน่วยความจำเพียงพอเพื่อตอบสนองการร้องขอที่ระบุ(&N)?
ON_CBN_SELENDCANCEL nbsp (Windows 3.1 และรุ่นที่ใหม่กว่านี้) บ่งชี้ว่า ควรจะยกเลิกส่วนที่เลือกของผู้ใช้ ผู้ใช้คลิกที่รายการ และคลิ กหน้าต่างหรือควบคุมการซ่อนกล่องรายการของกล่องคำสั่งผสมอื่น ส่งข้อความแจ้งเตือนนี้ก่อนข้อความแจ้งเตือนCBN_CLOSEUP เพื่อระบุว่า ควรถูกละเว้นส่วนที่เลือกของผู้ใช้ ส่งข้อความแจ้งเตือนCBN_SELENDCANCEL หรือCBN_SELENDOK แม้ว่าจะไม่มีส่งข้อความแจ้งเตือนCBN_CLOSEUP (เช่นในกรณีของกล่องคำสั่งผสมด้วยลักษณะCBS_SIMPLE )(&N)?
ON_CBN_SELENDOK nbsp ผู้ใช้เลือกรายการแล้วกดแป้น ENTER หรือคลิกที่ปุ่มลูกศรลงเพื่อซ่อนกล่องรายการของกล่องคำสั่งผสม ข้อความแจ้งเตือนนี้ถูกส่งก่อนCBN_CLOSEUP ข้อความเพื่อบ่งชี้ว่า ส่วนที่เลือกของผู้ใช้ควรจะถือว่าถูกต้อง ส่งข้อความแจ้งเตือนCBN_SELENDCANCEL หรือCBN_SELENDOK แม้ว่าจะไม่มีส่งข้อความแจ้งเตือนCBN_CLOSEUP (เช่นในกรณีของกล่องคำสั่งผสมด้วยลักษณะCBS_SIMPLE )(&N)?
ON_CBN_KILLFOCUS nbsp กล่องคำสั่งผสมจะสูญเสียโฟกัสสำหรับการป้อนค่า(&N)?
ON_CBN_SELCHANGE nbsp การเลือกในกล่องรายการของกล่องคำสั่งผสมจะถูกเปลี่ยนเป็นผลลัพธ์ของผู้ใช้คลิกในกล่องรายการ หรือการเปลี่ยนแปลงสิ่งที่เลือก โดยใช้แป้นลูกศร เมื่อการประมวลผลข้อความนี้ ข้อความในตัวควบคุมการแก้ไขของกล่องคำสั่งผสมสามารถเท่านั้นถูกดึงผ่านGetLBText หรือฟังก์ชันอื่นที่คล้ายกัน ไม่สามารถใช้GetWindowText ได้(&N)?
ON_CBN_SETFOCUS nbsp กล่องคำสั่งผสมได้รับโฟกัสป้อนข้อมูล(&N)?
ถ้าคุณสร้างวัตถุCComboBox ภายในกล่องโต้ตอบ (โดยผ่านการโต้ตอบกับทรัพยากร), วัตถุCComboBox ได้โดยอัตโนมัติทำลายเมื่อผู้ใช้ปิดกล่องโต้ตอบ?
หากคุณฝังตัววัตถุCComboBox ภายในอีกหน้าต่างวัตถุ คุณไม่จำเป็นต้องทำลายมัน ถ้าคุณสร้างวัตถุCComboBox ในกองซ้อน จะถูกทำลายโดยอัตโนมัติ ถ้าคุณสร้างวัตถุCComboBox ในกอง โดยใช้ฟังก์ชันใหม่ คุณต้องเรียกลบ บนวัตถุที่จะทำลายเมื่อมีทำลายกล่องคำสั่งผสมของ Windows?
#รวม lt;afxwin.h>
สมาชิกของคลาส |nbsp คลาสพื้นฐาน | แผนภูมิของลำดับชั้น (&N)
ตัวอย่าง nbsp MFC อย่าง CTRLBARS (&N)
ดูเพิ่มเติม nbspCWnd , CButton , CEdit , CListBox , CScrollBar , CStatic , CDialog (&N)