本文整理汇总了C++中CDuiObject::IsClass方法的典型用法代码示例。如果您正苦于以下问题:C++ CDuiObject::IsClass方法的具体用法?C++ CDuiObject::IsClass怎么用?C++ CDuiObject::IsClass使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDuiObject
的用法示例。
在下文中一共展示了CDuiObject::IsClass方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetParentDialog
// 获取父对话框
CDlgBase* CControlBase::GetParentDialog(BOOL bEnablePopup)
{
CDuiObject* pParentObj = GetParent();
while((pParentObj != NULL) && (!pParentObj->IsClass("dlg")))
{
if(pParentObj->IsClass("popup"))
{
if(!bEnablePopup) // 如果不允许Popup窗口的控件获取父对话框,则直接返回空
{
return NULL;
}
pParentObj = ((CDlgPopup*)pParentObj)->GetParent();
}else
{
pParentObj = ((CControlBase*)pParentObj)->GetParent();
}
}
if((pParentObj != NULL) && pParentObj->IsClass("dlg"))
{
return (CDlgBase*)pParentObj;
}
return NULL;
}
示例2: 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);
}
示例3: _CreateControlByName
// 根据控件名创建控件实例
CControlBase* CDuiTabCtrl::_CreateControlByName(LPCTSTR lpszName)
{
// 如果已经设置了窗口句柄,使用窗口句柄创建控件
HWND hWnd = m_hWnd;
if(hWnd != NULL)
{
return DuiSystem::CreateControlByName(lpszName, hWnd, this);
}
// 查找父对话框的窗口句柄,通过父对话框句柄创建控件
CDuiObject* pParentObj = GetParent();
while((pParentObj != NULL) && (!pParentObj->IsClass(_T("dlg"))) && (!pParentObj->IsClass(_T("popup"))))
{
pParentObj = ((CControlBase*)pParentObj)->GetParent();
}
if((pParentObj != NULL) && pParentObj->IsClass(_T("dlg")))
{
return DuiSystem::CreateControlByName(lpszName, ((CDlgBase*)pParentObj)->GetSafeHwnd(), this);
}else
if((pParentObj != NULL) && pParentObj->IsClass(_T("popup")))
{
return DuiSystem::CreateControlByName(lpszName, ((CDlgPopup*)pParentObj)->GetSafeHwnd(), this);
}
return NULL;
}
示例4: InvalidateRect
void CControlBase::InvalidateRect(LPCRECT lpRect, BOOL bErase)
{
CDuiObject* pParentObj = GetParent();
while((pParentObj != NULL) && (!pParentObj->IsClass("dlg")))
{
pParentObj = ((CControlBase*)pParentObj)->GetParent();
}
if((pParentObj != NULL) && pParentObj->IsClass("dlg"))
{
((CDlgBase*)pParentObj)->InvalidateRect(lpRect, bErase);
}
}
示例5: GetParent
CPopupList::~CPopupList(void)
{
// 释放图片资源
if(m_pImageHead != NULL)
{
delete m_pImageHead;
m_pImageHead = NULL;
}
if(m_pImageClose != NULL)
{
delete m_pImageClose;
m_pImageClose = NULL;
}
for(int i = 0; i < (int)m_vecItem.size(); i++)
{
EditListItem &editListItem = m_vecItem.at(i);
if(editListItem.pImage != NULL)
{
delete editListItem.pImage;
editListItem.pImage = NULL;
}
}
// 判断如果父控件是combo的话,将combo中的指针设置为空
CDuiObject* pParent = GetParent();
if(pParent->IsClass(CDuiComboBox::GetClassName()))
{
((CDuiComboBox*)pParent)->m_pPopupList = NULL;
}
}
示例6: _CreateControlByName
// 根据控件名创建控件实例
CControlBase* CDuiTabCtrl::_CreateControlByName(LPCTSTR lpszName)
{
HWND hWnd = NULL;
CDuiObject* pParentObj = GetParent();
while((pParentObj != NULL) && (!pParentObj->IsClass(_T("dlg"))))
{
pParentObj = ((CControlBase*)pParentObj)->GetParent();
}
if((pParentObj != NULL) && pParentObj->IsClass(_T("dlg")))
{
return DuiSystem::CreateControlByName(lpszName, ((CDlgBase*)pParentObj)->GetSafeHwnd(), this);
}
return NULL;
}
示例7: OnNcCloseWindow
// 重载窗口去激活时候的关闭窗口操作
BOOL CDuiMenu::OnNcCloseWindow()
{
// 如果有父菜单,将父菜单窗口关闭
CDuiMenu* pParentMenu = GetParentMenu();
if(pParentMenu && !pParentMenu->IsAutoClose())
{
// 如果鼠标在父菜单窗口中,则不关闭父窗口
CMenuItem* pHoverItem = pParentMenu->GetHoverMenuItem();
if(pHoverItem == NULL)
{
pParentMenu->SetAutoClose(TRUE);
pParentMenu->SetForegroundWindow();
pParentMenu->PostMessage(WM_LBUTTONDOWN, 0, 0);
}
}
// 如果父对象是菜单项,则将菜单项中的弹出菜单指针设置为空
CDuiObject* pParent = GetParent();
if((pParent != NULL) && (pParent->IsClass(CMenuItem::GetClassName())))
{
((CMenuItem*)pParent)->SetPopupMenu(NULL);
}
// 关闭自身
m_pParentDuiObject = NULL;
CloseWindow();
return TRUE;
}
示例8: ResetGroupCheck
// 刷新父控件下面所有同一个组的RadioButton控件的状态
BOOL CMenuItem::ResetGroupCheck()
{
CDuiObject* pParentObj = GetParent();
if(pParentObj == NULL)
{
return FALSE;
}
vector<CControlBase*>* pvecControl = NULL;
if(pParentObj->IsClass(_T("dlg")))
{
CDlgBase* pDlg = static_cast<CDlgBase*>(pParentObj);
pvecControl = pDlg->GetControls();
}else
if(pParentObj->IsClass(_T("popup")))
{
CDlgPopup* pDlg = static_cast<CDlgPopup*>(pParentObj);
pvecControl = pDlg->GetControls();
}else
{
CControlBase* pControlBase = static_cast<CControlBase*>(pParentObj);
pvecControl = pControlBase->GetControls();
}
if(pvecControl == NULL)
{
return FALSE;
}
for(int i=0; i<(int)pvecControl->size(); i++)
{
CControlBase* pControlBase = pvecControl->at(i);
if(pControlBase->IsClass(CMenuItem::GetClassName()) && pControlBase->GetVisible() && !pControlBase->GetDisable())
{
CMenuItem* pControl = static_cast<CMenuItem*>(pControlBase);
if((pControl->GetGroupName() == m_strGroupName) && (pControl != this))
{
// 重置控件状态
pControl->SetControlCheck(FALSE);
}
}
}
return TRUE;
}
示例9: GetGroupValue
// 获取所在Radio组选择的控件的值
CString CMenuItem::GetGroupValue()
{
CDuiObject* pParentObj = GetParent();
if(pParentObj == NULL)
{
return _T("");
}
vector<CControlBase*>* pvecControl = NULL;
if(pParentObj->IsClass(_T("dlg")))
{
CDlgBase* pDlg = static_cast<CDlgBase*>(pParentObj);
pvecControl = pDlg->GetControls();
}else
if(pParentObj->IsClass(_T("popup")))
{
CDlgPopup* pDlg = static_cast<CDlgPopup*>(pParentObj);
pvecControl = pDlg->GetControls();
}else
{
CControlBase* pControlBase = static_cast<CControlBase*>(pParentObj);
pvecControl = pControlBase->GetControls();
}
if(pvecControl == NULL)
{
return _T("");
}
for(int i=0; i<(int)pvecControl->size(); i++)
{
CControlBase* pControlBase = pvecControl->at(i);
if(pControlBase->IsClass(CMenuItem::GetClassName()) && pControlBase->GetVisible() && !pControlBase->GetDisable())
{
CMenuItem* pControl = static_cast<CMenuItem*>(pControlBase);
if((pControl->GetGroupName() == m_strGroupName) && pControl->GetCheck())
{
return pControl->GetValue();
}
}
}
return _T("");
}
示例10: IsControlVisible
// 获取控件的可见性(遍历父控件,如果父控件不可见,则返回不可见)
BOOL CControlBase::IsControlVisible()
{
if(!GetVisible())
{
return FALSE;
}
CDuiObject* pParentObj = GetParent();
if(pParentObj == NULL)
{
return GetVisible();
}
if(pParentObj->IsClass("dlg") || pParentObj->IsClass("popup"))
{
return GetVisible();
}
return ((CControlBase*)pParentObj)->IsControlVisible();
}
示例11: SendMessageToParent
// 发送通知消息给父控件
BOOL CDlgPopup::SendMessageToParent(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
CDuiObject* pParentObj = GetParent();
if(pParentObj == NULL)
{
return FALSE;
}
if(pParentObj->IsClass(_T("dlg")))
{
return ((CDlgBase*)pParentObj)->OnMessage(GetID(), uMsg, wParam, lParam);
}else
if(pParentObj->IsClass(_T("popup")))
{
return ((CDlgPopup*)pParentObj)->OnMessage(GetID(), uMsg, wParam, lParam);
}else
{
return ((CControlBase*)pParentObj)->OnMessage(GetID(), uMsg, wParam, lParam);
}
return FALSE;
}
示例12: GetParentIDuiHostWnd
// 获取父控件的插件宿主窗口功能接口(如果是在插件中)
IDuiHostWnd* CControlBase::GetParentIDuiHostWnd()
{
CDuiObject* pParentObj = GetParent();
while(pParentObj != NULL)
{
if(pParentObj->IsClass(_T("div")) && (((CDuiPanel*)pParentObj)->GetIDuiHostWnd() != NULL))
{
return ((CDuiPanel*)pParentObj)->GetIDuiHostWnd();
}
pParentObj = ((CControlBase*)pParentObj)->GetParent();
}
return NULL;
}
示例13: InvalidateRect
void CControlBase::InvalidateRect(LPCRECT lpRect, BOOL bErase)
{
if(m_hWnd != NULL)
{
::InvalidateRect(m_hWnd, lpRect, bErase);
return;
}
CDuiObject* pParentObj = GetParent();
while((pParentObj != NULL) && (!pParentObj->IsClass(_T("dlg"))) && (!pParentObj->IsClass(_T("popup"))))
{
pParentObj = ((CControlBase*)pParentObj)->GetParent();
}
if((pParentObj != NULL) && pParentObj->IsClass(_T("dlg")))
{
((CDlgBase*)pParentObj)->InvalidateRect(lpRect, bErase);
}else
if((pParentObj != NULL) && pParentObj->IsClass(_T("popup")))
{
//((CDlgPopup*)pParentObj)->InvalidateRect(lpRect, bErase);
}
}
示例14: GetParentMenu
// 获取父菜单对象
CDuiMenu* CMenuItem::GetParentMenu()
{
CDuiObject* pParentObj = GetParent();
while((pParentObj != NULL) && (!pParentObj->IsClass(_T("menu"))))
{
if(pParentObj->IsClass(_T("popup")))
{
pParentObj = ((CDlgPopup*)pParentObj)->GetParent();
}else
if(pParentObj->IsClass(_T("dlg")))
{
pParentObj = ((CDlgBase*)pParentObj)->GetParent();
}else
{
pParentObj = ((CControlBase*)pParentObj)->GetParent();
}
}
if((pParentObj != NULL) && pParentObj->IsClass(_T("menu")))
{
return (CDuiMenu*)pParentObj;
}
return NULL;
}