COleControl::GetActivationPolicy

เสมือน 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)

Index