本文整理汇总了C++中CDuiObject::GetDuiHandler方法的典型用法代码示例。如果您正苦于以下问题:C++ CDuiObject::GetDuiHandler方法的具体用法?C++ CDuiObject::GetDuiHandler怎么用?C++ CDuiObject::GetDuiHandler使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDuiObject
的用法示例。
在下文中一共展示了CDuiObject::GetDuiHandler方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CallDuiHandler
// 调用DUI事件处理对象
LRESULT CControlBase::CallDuiHandler(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
CDuiHandler* pDuiHandler = GetDuiHandler();
if(pDuiHandler != NULL)
{
return pDuiHandler->OnDuiMessage(GetID(), GetName(), uMsg, wParam, lParam);
}
CDuiObject* pParentObj = GetParent();
while(pParentObj != NULL)
{
CDuiHandler* pDuiHandler = pParentObj->GetDuiHandler();
if(pDuiHandler != NULL)
{
return pDuiHandler->OnDuiMessage(GetID(), GetName(), uMsg, wParam, lParam);
}
if(pParentObj->IsClass("popup"))
{
pParentObj = ((CDlgPopup*)pParentObj)->GetParent();
}else
if(pParentObj->IsClass("dlg")) // 如果是对话框,暂时终结,不再找父窗口
{
pParentObj = ((CDlgBase*)pParentObj)->GetParent();
}else
{
pParentObj = ((CControlBase*)pParentObj)->GetParent();
}
}
// 如果未找到事件处理对象,则通过DuiSystem调用所有注册的事件处理对象进行处理
return DuiSystem::Instance()->CallDuiHandler(GetID(), GetName(), uMsg, wParam, lParam);
}