CBitmapButton

ใช้คลาสCBitmapButtonในการสร้างตัวควบคุม pushbutton ติดป้ายชื่อ ด้วยรูปบิตแทนข้อความ CBitmapButtonวัตถุประกอบด้วยถึง 4 บิต ซึ่งประกอบด้วยรูปสำหรับปุ่มสามารถถือว่าอเมริกาต่าง: ขึ้น (หรือปกติ), ลง (หรือเลือก), เน้น และปิดการใช้งาน เพียงบิตแมปที่แรกไม่จำเป็น มีผู้อื่นก็ได้?

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

บิตแมปเหล่านี้สามารถเป็นขนาดใด ๆ แต่ทั้งหมดจะถือว่าเหมือนเป็นขนาดเดียวกับบิตแมปสำหรับสถานะขึ้น?

โปรแกรมประยุกต์ต่าง ๆ เรียกรูปภาพบิตแมปที่แตกต่างกัน:

อัพ ลง เน้น ปิดการใช้งาน แอพลิเคชัน
? บิตแมป
? ? ปุ่ม โดยลักษณะWS_TABSTOP
? ? ? ? ปุ่มโต้ตอบกับอเมริกาทั้งหมด
? ? ? ปุ่มโต้ตอบ ด้วยลักษณะWS_TABSTOP

เมื่อต้องการสร้างตัวควบคุมปุ่มบิตแมป ตั้งค่าลักษณะBS_OWNERDRAWเพื่อระบุว่า ปุ่มที่เป็นเจ้าของ-drawn.nbsp นี้ทำให้ Windows ส่งข้อความWM_MEASUREITEMและWM_DRAWITEMสำหรับปุ่ม กรอบการจัดการกับข้อความเหล่านี้ และจัดการลักษณะที่ปรากฏของปุ่มสำหรับคุณ(&N)?

เมื่อต้องการสร้างตัวควบคุมปุ่มรูปบิตแมปในพื้นที่ของไคลเอ็นต์ของหน้าต่าง ทำตามขั้นตอนเหล่านี้:

  1. สร้างรูปชนิดบิตแมปหนึ่งถึงสี่สำหรับปุ่ม?

  2. สร้างวัตถุCBitmapButton?

  3. เรียกฟังก์ชันสร้างเพื่อสร้างตัวควบคุมปุ่ม Windows และแนบไปยังวัตถุCBitmapButton?

  4. เรียกใช้ฟังก์ชันLoadBitmapsสมาชิกโหลดทรัพยากรบิตแมปหลังจากปุ่มบิตแมปจะถูกสร้างขึ้น?

การรวมตัวควบคุมปุ่มรูปบิตแมปในกล่องโต้ตอบ ทำตามขั้นตอนเหล่านี้:

  1. สร้างรูปชนิดบิตแมปหนึ่งถึงสี่สำหรับปุ่ม?

  2. สร้างต้นแบบการโต้ตอบกับปุ่มตัวเจ้าของวาดที่ตำแหน่งที่คุณต้องการให้ปุ่มบิตแมป ขนาดของปุ่มในแบบไม่ใช่เรื่องสำคัญ?

  3. การตั้งค่าคำอธิบายเฉพาะของปุ่มค่าเช่น "MYIMAGE" และกำหนดสัญลักษณ์สำหรับปุ่มเช่น IDC_MYIMAGE?

  4. ในสคริปต์ทรัพยากรของโปรแกรมประยุกต์ของคุณ ให้แต่ละรูปสร้างปุ่มถูกสร้างขึ้น โดยการผนวกหนึ่งตัวอักษร "U," "D," ID "F" หรือ "X" (สำหรับอัพ ลง เน้น และปิดใช้งาน) สายอักขระที่ใช้สำหรับคำอธิบายเฉพาะปุ่มในขั้นที่ 3 สำหรับคำอธิบายของปุ่ม "MYIMAGE" ตัวอย่าง รหัสจะ "MYIMAGEU ," "MYIMAGED", "MYIMAGEF และ"MYIMAGEX" คุณต้องระบุ ID ของบิตแมปของคุณภายในอัญประกาศ มิฉะนั้นตัวแก้ไขทรัพยากรจะกำหนดเป็นจำนวนเต็มให้ทรัพยากร และ MFC จะล้มเหลวเมื่อโหลดรูป?

  5. ในโปรแกรมประยุกต์ของคุณโต้ตอบคลาส (มาจากCDialog), เพิ่มวัตถุรูปสมาชิกCBitmapButton?

  6. ในรูทีนOnInitDialogของวัตถุCDialogเรียกใช้ฟังก์ชันAutoLoadของวัตถุCBitmapButtonใช้เป็นพารามิเตอร์ของปุ่มควบคุม ID และของวัตถุCDialogนี้ชี้?

ถ้าคุณต้องการจัดการ Windows แจ้งเตือนข้อ เช่นBN_CLICKEDส่ง โดยตัวควบคุมปุ่มรูปบิตแมปในการปกครองของ (มักจะคลาสที่ได้รับมาจากCDialog)เพิ่มCDialog-มาวัตถุเป็นข้อความแผนผังรายการและข้อความจัดการสมาชิกฟังก์ชันสำหรับแต่ละข้อความ แจ้งให้ทราบที่ส่ง โดยวัตถุCBitmapButtonจะเหมือนกับการที่ถูกส่ง โดยวัตถุCButton?

คลาCToolBarจะเป็นวิธีที่แตกต่างกันกับปุ่มรูปบิตแมป?

ดูข้อมูลเพิ่มเติมบนCBitmapButton, ควบคุมหัวข้อin Visual c ++ Programmer ของรายการแนะนำ?

#รวม lt;afxext.h>

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

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

Index