COleControl::GetActivationPolicy

sanal dword GetActivationPolicy ( );

Dönüş değeri

POINTERINACTIVE numaralandırma bayrak birleşimi. Olası bayraklar:

POINTERINACTIVE_ACTIVATEONENTRY

Nesneyi yerinde fareyi fare taşıma işlemi sırasında girdiğinde aktif olmalıdır.

POINTERINACTIVE_DEACTIVATEONLEAVE

Fareyi fare taşıma işlemi sırasında nesne ayrıldığında nesnesi devre dışı.

POINTERINACTIVE_ACTIVATEONDRAG

Nesneyi yerinde fare üzerinde sürükleme sırasında sürüklendiğinde aktif olmalı ve işlem damla.

Açıklamalar

IPointerInactive arabirimini destekleyen bir denetim varsayılan etkinleştirme davranışını değiştirmek için bu işlevi geçersiz kılma.

IPointerInactive arabirim etkinleştirildiğinde, konteyner o wm_setcursor ve wm_mousemove iletileri temsilcisi. Sonra fare ayarlama uygun şekilde koordine COleControl' nın uygulanması bu arabirim üzerinden, denetim iletisi göster, bu ileti gönderme.

Her konteyner IPointerInactivedestekleyen etkin olmayan bir nesne üzerinde fare işaretçisi ile wm_setcursor ya da wm_mousemove bir ileti alır, GetActivationPolicyçağırmalıdır arabirimi ve dönüş bayrakları POINTERINACTIVE numaralandırma.

Gibi sıradan pencere iletilerinin, bu iletiler, ileti harita ilgili girişleri ekleyerek işleyebilir. Senin işleyicilerini, m_hWnd üye değişkeni (ya da herhangi bir üye işlevlerini kullanan) kullanmaktan kaçının ilk denetimi değeri olmayan-null.

Herhangi bir nesnenin birden fazla fare imleci ayarlama gibi fare hareket olayı, yangın için amaçlanan özel görsel geribildirim vermek, POINTERINACTIVE_ACTIVATEONENTRY bayrağı dönmek ve geribildirim yalnızca etkin olduğunda çizin. Nesne bu bayrak dönerse, konteyner yerinde hemen etkinleştirmek ve sonra GetActivationPolicy çağrısı tetikleyen aynı iletiyi iletin.

Sonra POINTERINACTIVE_ACTIVATEONENTRY ve POINTERINACTIVE_DEACTIVATEONLEAVE bayrakları döndürülmezse, fare nesnenin üzerine geldiğinde nesneyi yalnızca etkinleştirilecektir. Yalnızca POINTERINACTIVE_ACTIVATEONENTRY bayrağı döndürülür, fare nesneyi ilk girdiğinde bir kez sonra nesneyi yalnızca aktif olacaktır.

Hedefi, bir ole sürükle ve bırak işlemi etkin bir denetimi de isteyebilirsiniz. Bu denetimin pencere bırakma hedef olarak kaydedilebilir, böylece bitti, bir nesnenin kullanıcı Sürüyor şu anda denetimi etkinleştirme gerektirir. Neden bir sürükleme sırasında gerçekleşmesi harekete geçirmek, dönmek POINTERINACTIVE_ACTIVATEONDRAG bayrağı:

Dword CMyCtrl::GetActivationPolicy()
{
 nbsp;  return POI&NTERINACTIVE_ACTIVATEONDRAG;
}

GetActivationPolicy tarafından iletilen bilgilerin kapsayıcısı tarafından önbelleğe alınmamalıdır. Etkin nesneyi farenin girdiği her zaman bunun yerine bu yöntemi çağrılmalıdır.

Etkin nesneyi yerinde fare girdiğinde aktif olmasını istemez, kapsayıcısının sonraki wm_setcursor iletileri bu nesneye fare işaretçisini nesnenin üzerinde kalır sürece OnInactiveSetCursor çağırarak gönderme.

Genellikle IPointerInactive arabirimini etkinleştirmeyi istediğiniz denetimin her zaman fare iletileri işleme yeteneğine sahip olması demektir. Bu davranış IPointerInactive arabirimini desteklemediği bir kap içinde almak için her zaman görünür olduğunda, etkin denetim olması gerekir denetim yani OLEMISC_ACTIVATEWHENVISIBLE bayrak, muhtelif bayrakları arasında olması gerekir. Ancak, bu bayrak etkisi IPointerInactivedestekleyen bir konteyner alarak önlemek için de OLEMISC_IGNOREACTIVATEWHENVISIBLE bayrağını belirtebilirsiniz:

 static const dword based_code _dwMyOleMisc =
 nbsp;  OLEMISC_ACTIVATEWHE&NVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

COleControl genel bakış |nbsp; Sınıf üyeleri | Hiyerarşi çizelgesi

Ayrıca bkz: COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove

Index