เสมือน DWORD GetActivationPolicy ( );
ส่งกลับค่า
การรวมกันของค่าสถานะจากการแจงนับPOINTERINACTIVE สถานะที่เป็นไปได้คือ:
POINTERINACTIVE_ACTIVATEONENTRY
วัตถุควรจะเรียกใช้เมื่อเมาส์ป้อนในระหว่างการดำเนินการย้ายเมาส์ในสถาน?
POINTERINACTIVE_DEACTIVATEONLEAVE
วัตถุควรจะถูกเรียกใช้เมื่อเมาส์ออกจากวัตถุในระหว่างการดำเนินการย้ายเมาส์?
POINTERINACTIVE_ACTIVATEONDRAG
วัตถุควรจะเรียกใช้เมื่อมีลากเมาส์เหนือระหว่างการลากในสถาน และปล่อยการดำเนินการ?
หมายเหตุ
แทนที่ฟังก์ชันนี้เพื่อเปลี่ยนแปลงการทำงานเปิดใช้งานเริ่มต้นของตัวควบคุมที่สนับสนุนอินเทอร์เฟซสำหรับIPointerInactive?
เมื่อมีการใช้อินเทอร์เฟซสำหรับIPointerInactiveคอนเทนเนอร์ที่จะมอบหมายข้อความที่WM_SETCURSORและWM_MOUSEMOVEได้ การใช้งานCOleControlของอินเทอร์เฟซนี้จะส่งข้อความเหล่านี้ผ่านการแมปข้อความของตัวควบคุมของคุณ หลังจากปรับเมาส์ประสานความร่วมมืออย่างเหมาะสม?
เมื่อใดก็ ตามที่คอนเทนเนอร์ที่ได้รับข้อความWM_SETCURSORหรือWM_MOUSEMOVEมีตัวชี้เมาส์เหนือวัตถุไม่สนับสนุนIPointerInactiveควรเรียกGetActivationPolicy บนอินเทอร์เฟซและคืนค่าสถานะจากการแจงนับPOINTERINACTIVE?
คุณสามารถประมวลผลข้อความเหล่านี้เช่นเดียวกับข้อความในหน้าต่างทั่วไป โดยการเพิ่มรายการสอดคล้องกันในการแมปข้อความ ในตัวของคุณจัดการ หลีกโดยใช้ตัวแปรสมาชิกm_hWnd (หรือฟังก์ชันใด ๆ ของสมาชิกที่ใช้) โดยไม่ต้องแจ้งให้ทราบก่อนการตรวจสอบว่าค่าไม่ใช่-NULL?
วัตถุใด ๆ เพื่อและ/มากกว่าตั้งค่าเคอร์เซอร์ของเมาส์ หรือไฟเหตุการณ์การย้ายเมาส์ เช่นให้พิเศษให้เห็น ควรส่งคืนค่าสถานะPOINTERINACTIVE_ACTIVATEONENTRYและวาดความคิดเห็นเฉพาะเมื่อใช้งาน ถ้าวัตถุส่งกลับค่าสถานะนี้ คอนเทนเนอร์ที่ควรเรียกใช้งานแบบแทนที่ทันที และส่งต่อจากนั้น ไปข้อความเดียวกันที่ทริกเกอร์การเรียกไปยังGetActivationPolicy?
ถ้ามีคืนค่าสถานะทั้งPOINTERINACTIVE_ACTIVATEONENTRYและPOINTERINACTIVE_DEACTIVATEONLEAVEแล้ววัตถุจะเท่านั้นสามารถเปิดใช้งานเมื่อเมาส์อยู่เหนือวัตถุ ถ้าใช้เพียงส่งกลับค่าสถานะPOINTERINACTIVE_ACTIVATEONENTRYแล้ววัตถุจะเท่านั้นสามารถเปิดใช้งานเมื่อเมื่อเมาส์ก่อนป้อนวัตถุ?
นอกจากนี้คุณยังอาจต้องการตัวควบคุมที่ไม่ได้ใช้งานเป็นเป้าหมายของการลาก OLE และปล่อยการดำเนินการ ต้องเปิดใช้งานตัวควบคุมในขณะที่ผู้ใช้ลากวัตถุเหนือ เพื่อให้สามารถลงทะเบียนตัวควบคุมของหน้าต่างเป็นเป้าหมายสำหรับปล่อย ทำการเปิดใช้งานให้เกิดขึ้นในระหว่างการลาก ส่งคืนค่าสถานะPOINTERINACTIVE_ACTIVATEONDRAG:
DWORD CMyCtrl::GetActivationPolicy()
{
nbsp กลับ POINTERINACTIVE_ACTIVATEONDRAG
}(&N)
ข้อมูลการติดต่อกันโดยGetActivationPolicyไม่ควรแค โดยที่บรรจุ แทน วิธีการนี้ควรจะเรียกทุกครั้งที่เมาส์ป้อนวัตถุที่ไม่ได้ใช้งาน?
ถ้าวัตถุที่ไม่ได้ใช้งานไม่ได้ร้องขอให้ เปิดใช้งานเมื่อเมาส์ป้อนในสถาน คอนเทนเนอร์ของควรส่งข้อความWM_SETCURSORต่อมาวัตถุนี้ โดยการเรียกOnInactiveSetCursorตราบใดที่ตัวชี้เมาส์อยู่เหนือวัตถุ?
การเปิดใช้งานอินเทอร์เฟซสำหรับIPointerInactiveโดยทั่วไปหมายถึง การที่ คุณต้องการให้ตัวควบคุมมีความสามารถในการประมวลผลข้อความที่เมาส์ตลอดเวลา รับพฤติกรรมนี้ในคอนเทนเนอร์ที่ไม่สนับสนุนอินเทอร์เฟซสำหรับIPointerInactiveคุณจำเป็นต้องมีการควบคุมของคุณจะเรียกใช้เมื่อเห็น ซึ่งหมายถึง การควบคุมควรมีค่าสถานะOLEMISC_ACTIVATEWHENVISIBLEระหว่างสถานะของเบ็ดเตล็ด อย่างไรก็ตาม ในการป้องกันไม่ให้ธงนี้มีลักษณะพิเศษในคอนเทนเนอร์ที่สนับสนุนIPointerInactiveคุณยังสามารถระบุค่าสถานะOLEMISC_IGNOREACTIVATEWHENVISIBLE:
คง const DWORD BASED_CODE _dwMyOleMisc =
nbsp OLEMISC_ACTIVATEWHENVISIBLE |
OLEMISC_IGNOREACTIVATEWHENVISIBLE |
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE(&N);
ภาพรวม COleControl |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCOleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove(&N)