本文整理汇总了C++中CControlBase::GetPosStr方法的典型用法代码示例。如果您正苦于以下问题:C++ CControlBase::GetPosStr方法的具体用法?C++ CControlBase::GetPosStr怎么用?C++ CControlBase::GetPosStr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CControlBase
的用法示例。
在下文中一共展示了CControlBase::GetPosStr方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetMenuPoint
// 设置菜单项位置
void CDuiMenu::SetMenuPoint()
{
int nXPos = 2;
int nYPos = (m_nTopHeight != 0) ? m_nTopHeight : 2;
CRect rc;
for (size_t i = 0; i < m_vecControl.size(); i++)
{
CControlBase * pControlBase = m_vecControl[i];
if(pControlBase == NULL)
{
continue;
}
if(pControlBase->IsClass(CMenuItem::GetClassName())) // 如果是MenuItem类型控件
{
CMenuItem* pMenuItem = (CMenuItem*)pControlBase;
pMenuItem->SetFrameWidth(m_nFrameWidth);
if(!pMenuItem->GetVisible())
{
// 菜单项不可见
rc.SetRect(0,0,0,0);
}else
if(pMenuItem->IsSeparator())
{
// 分隔线
rc.SetRect(m_nLeft + 1, nYPos + 1, m_nWidth - 1, nYPos + 2);
nYPos += 4;
}else
{
// 普通菜单项
rc.SetRect(nXPos, nYPos, m_nWidth - 2, nYPos + m_nHeight);
nYPos += m_nHeight;
// 设置菜单项的鼠标移动时候的背景
if(m_pImageRowHover != NULL)
{
pMenuItem->m_pImageHover = m_pImageRowHover;
pMenuItem->m_sizeHover = m_sizeRowHover;
}else
{
pMenuItem->m_clrHover = m_clrRowHover; // 设置菜单项的背景色
}
// 设置菜单项的弹出菜单箭头图片
if(m_pImagePopupArrow != NULL)
{
pMenuItem->m_pImagePopupArrow = m_pImagePopupArrow;
pMenuItem->m_sizePopupArrow = m_sizePopupArrow;
}
}
SetControlRect(pControlBase, rc);
}else
if(-1 == pControlBase->GetControlID())
{
rc.SetRect(m_nLeft + 4, nYPos + 1, m_nWidth - 9, nYPos + 2);
nYPos += 4;
SetControlRect(pControlBase, rc);
}
}
nYPos += ((m_nBottomHeight != 0) ? m_nBottomHeight : 2);
SetWindowPos(NULL, 0, 0, m_nWidth, nYPos, SWP_NOMOVE);
SetRect(CRect(0, 0, m_nWidth, nYPos)); // 设置菜单窗口的大小
// 设置非菜单项控件的位置(必须在高度计算出来之后设置)
for (size_t i = 0; i < m_vecControl.size(); i++)
{
CControlBase * pControlBase = m_vecControl[i];
if(pControlBase == NULL)
{
continue;
}
if(pControlBase->IsClass(CMenuItem::GetClassName()))
{
continue;
}else
if(-1 == pControlBase->GetControlID())
{
continue;
}else
{
pControlBase->OnAttributePosChange(pControlBase->GetPosStr(), FALSE);
}
}
InvalidateRect(NULL);
}