CToolBar

วัตถุของคลาCToolBarแถบควบคุมที่มีแถวของปุ่มบิตและตัวคั่นหรือไม่ก็ ได้ ปุ่มสามารถทำหน้าที่เหมือนกับ pushbuttons กล่องกาเครื่องหมายปุ่ม หรือปุ่มตัวเลือก CToolBarวัตถุเป็นสมาชิกที่มักจะฝังตัวของวัตถุหน้าต่างเฟรมที่ได้มาจากคลาสCFrameWndหรือCMDIFrameWnd?

CToolBar::GetToolBarCtrlฟังก์ชันสมาชิกใหม่ MFC 4.0 ช่วยให้คุณสามารถใช้ประโยชน์จากการสนับสนุนของ Windows ทั่วไปของตัวควบคุมสำหรับการกำหนดเองแถบเครื่องมือและฟังก์ชันการทำงานเพิ่มเติม CToolBarสมาชิกฟังก์ชันให้มากที่สุดของการทำงานของตัวควบคุมทั่วไป Windows อย่างไรก็ตาม เมื่อคุณเรียกใช้GetToolBarCtrlคุณสามารถกำหนดแถบเครื่องมือของคุณมากขึ้นของลักษณะของแถบเครื่องมือ Windows 95 เมื่อคุณเรียกใช้GetToolBarCtrlมันจะส่งกลับการอ้างอิงไปยังวัตถุCToolBarCtrl ดูCToolBarCtrlสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบแถบเครื่องมือที่ใช้ตัวควบคุมทั่วไปของ Windows ดูข้อมูลทั่วไปเกี่ยวกับตัวควบคุมทั่วไป ตัวควบคุมทั่วไปในการอ้างอิงของโปรแกรมเมอร์ Windows 95 SDK?

Visual c ++มีสองวิธีในการสร้างแถบเครื่องมือ การสร้างทรัพยากรบนแถบเครื่องมือโดยใช้ตัวแก้ไขทรัพยากร ทำตามขั้นตอนเหล่านี้:

  1. สร้างทรัพยากรบนแถบเครื่องมือ?

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

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

  4. โทรLoadToolBarโหลดทรัพยากรแถบเครื่องมือ?

มิฉะนั้น ให้ทำตามขั้นตอนเหล่านี้:

  1. สร้างวัตถุCToolBar?

  2. เรียกใช้ฟังก์ชันสร้าง(หรือCreateEx) เพื่อสร้างแถบเครื่องมือของ Windows และแนบไปยังวัตถุCToolBar?

  3. โทรLoadBitmapโหลดบิตแมปที่ประกอบด้วยรูปปุ่มแถบเครื่องมือ?

  4. โทรSetButtonsเพื่อตั้งค่าปุ่มลักษณะ และการเชื่อมโยงแต่ละปุ่ม มีรูปในบิตแมป?

รูปปุ่มทั้งหมดในแถบเครื่องมือมาจากหนึ่งบิต ซึ่งต้องประกอบด้วยรูปหนึ่งสำหรับแต่ละปุ่ม รูปภาพทั้งหมดต้องมีขนาดเดียวกัน ค่าเริ่มต้นคือ ความกว้าง 16 พิกเซลและ 15 พิกเซล รูปภาพต้องอยู่เคียงข้างในบิตแมป?

ฟังก์ชันSetButtonsจะเป็นตัวชี้ไปยังอาร์เรย์ของตัวควบคุมรหัสและค่า integer ที่ระบุจำนวนขององค์ประกอบในอาร์เรย์ ฟังก์ชันตั้งค่า ID ของแต่ละปุ่มเป็นค่าขององค์ประกอบสอดคล้องกันของอาร์เรย์ และกำหนดให้กับแต่ละปุ่มรูปดัชนี ซึ่งระบุตำแหน่งของรูปภาพของปุ่มในบิตแมป ถ้าองค์ประกอบแถวลำดับมีค่าID_SEPARATORมีกำหนดดัชนีที่ไม่มีรูป?

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

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

แต่ละปุ่มมีรูปหนึ่ง ต่าง ๆ ปุ่มอเมริกา และลักษณะ (pressed ขึ้น ลง ปิดการใช้งาน ปิดการใช้งานลง และไม่ทราบแน่ชัด) ถูกสร้างขึ้นจากรูปที่หนึ่ง แม้ว่าบิตแมปสามารถสีใด ๆ คุณจะได้รับผลลัพธ์ที่ดีที่สุด ด้วยรูปภาพในสีดำและระดับสีเทา?

ปุ่มแถบเครื่องมือเลียนแบบ pushbuttons โดยค่าเริ่มต้น อย่างไรก็ตาม ปุ่มแถบเครื่องมือสามารถยังเลียนแบบปุ่มกล่องกาเครื่องหมายหรือปุ่มตัวเลือก กล่องกาเครื่องหมายปุ่มที่มีสามอเมริกา: ตรวจสอบ ว่างไว้ และไม่ทราบแน่ชัด ปุ่มตัวเลือกได้เพียงสองสถานะ: การตรวจสอบ และยกเลิกเลือก?

การตั้งค่าแต่ละปุ่มหรือแยกลักษณะโดยไม่ชี้ไปยังอาร์เรย์ เรียกGetButtonStyleในการเรียกลักษณะ และเรียกใช้SetButtonStyleแทนของSetButtonsแล้ว SetButtonStyleเป็นประโยชน์เมื่อคุณต้องการเปลี่ยนลักษณะของปุ่มในขณะใช้งาน?

เมื่อต้องการกำหนดข้อความที่ปรากฏบนปุ่ม โทรGetButtonTextในการเรียกข้อความที่ปรากฏบนปุ่ม และจึง เรียกSetButtonTextการตั้งค่าข้อความ?

เมื่อต้องการสร้างกล่องกาเครื่องหมายปุ่ม กำหนดลักษณะTBBS_CHECKBOXหรือใช้ในวัตถุCCmdUI SetCheckสมาชิกฟังก์ชันในการจัดการON_UPDATE_COMMAND_UI โทรSetCheckกลายเป็น pushbutton ปุ่มกล่องกาเครื่องหมาย การส่งผ่านอาร์กิวเมนต์ 0 SetCheck 1 เครื่องหมายขีด ตรวจสอบ หรือ 2 สำหรับไม่ทราบแน่ชัด?

เมื่อต้องการสร้างปุ่มวิทยุ เรียกของวัตถุCCmdUI SetRadioสมาชิกฟังก์ชันจากการจัดการON_UPDATE_COMMAND_UI ผ่านSetRadioอาร์กิวเมนต์ 0 ไม่ได้ตรวจสอบ หรือไม่ใช่ศูนย์สำหรับการตรวจสอบ เพื่อให้ลักษณะเอกลักษณ์ของกลุ่มวิทยุ คุณต้องมีตัวจัดการON_UPDATE_COMMAND_UIสำหรับปุ่มทั้งหมดในกลุ่ม?

ดูบทความสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้CToolBar, แถบเครื่องมือในรายการแนะนำของ Visual c ++ Programmer ของและ เทคนิคหมายเหตุ 31แถบควบคุม?

#รวม lt;afxext.h>

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

ตัวอย่างnbsp อย่าง MFC CTRLBARS | DLGCBR32 อย่าง MFC | MFC อย่าง DOCKTOOL(&N)

ดูเพิ่มเติมnbspCToolBarCtrl, CControlBar, CToolBar::Create, CToolBar::LoadBitmap, CToolBar::SetButtons, CCmdUI::SetCheck, CCmdUI::SetRadio(&N)

Index