网站首页  词典首页

请输入您要查询的计算机术语:

 

术语 COleControl::GetActivationPolicy
释义 COleControl::GetActivationPolicy

virtual 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时使用m_hWnd成员变量(或使用该成员变量的任何成员函数)。
如果一个对象想在设置鼠标光标和/或触发鼠标移动事件以外,进行更多的鼠标处理操作,例如给出特别的可视反馈,必须返回POINTERINACTIVE_ACTIVATEONENTRY标志,并且只能在活动时进行反馈。
如果对象返回该标志,包容器必须立即激活该对象,然后向它发出相同的消息以触发对GetActivationPolicy的调用。
如果同时返回POINTERINACTIVE_ACTIVATEONENTRY和POINTERIN ACTIVE_DEACTIVATEONLEAVE 标志,那么对象只能在鼠标移到时才能被激活。如果仅返回POINTERINACTIVE_ACTIVATEONENTRY 标志,该对象仅在鼠标第一次进入对象时被激活。
有时可能要将一个非活动控件作为一次OLE拖放操作的目标。这要求在用户拖拉控件时激活控件,以便将控件窗口注册为一个放下的目标。要在拖拉时激活控件,则返回POINTERINACTIVE_ACTIVATEONDRAG标志:
DWORD CMyCtrl::GetActivationPolicy()
{
  return POINTERINACTIVE_ACTIVATEONDRAG;
}
GetActivationPolicy通讯的信息必须由包容器进行缓冲。否则,该方法必须在每一次鼠标进入非活动对象时调用。
如果一个非活动对象在鼠标进入时不要求被激活,它的包容器必须在鼠标停留在对象上时调用OnInactiveSetCursor向该对象分派持续的WM_SETCURSOR消息。
使IPointerInactive界面有效通常意味着使控件在任何时候具有处理鼠标消息的能力。如果不支持IPointerInactive界面,那么需要使你的控件自始至终都处于活动状态才能处理鼠标消息,这意味着控件必须具有OLEMISC_ACTIV ATEWHENVISIBLE标志。然而,为避免该标志影响支持IPointerInactive的包容器,你还要指定OLEMISC_IGNOREACTIVATEWHENVISIBLE标志:
static const DWORD BASED_CODE _dwMyOleMisc = OLEMISC_ACTIVATEWHENVISIBLE |
                                             OLEMISC_IGNOREACTIVATEWHENVISIBLE |
                                             OLEMISC_SETCLIENTSITEFIRST |
                                             OLEMISC_INSIDEOUT |
                                             OLEMISC_CANTLINKINSIDE |
                                             OLEMISC_RECOMPOSEONRESIZE;

请参阅:COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove
随便看

 

MFC类库中文详解手册包含4274条MFC类库参考词条,基本涵盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。

 

Copyright © 2004-2023 Winrtm.com All Rights Reserved
京ICP备2021023879号-40 更新时间:2024/10/6 12:26:20