Element Manager нужна помощь в создании определенных элементов

Привет товарищи! Я новичок в stackoverflow, поэтому, пожалуйста, скажите мне, как я это сделал.

Я пытаюсь создать систему элементов для моего GUI, но столкнулся с проблемой!

я звоню CBaseElement::MakeTop() каждый раз, когда щелчок мыши был обнаружен внутри окна

void CBaseElement::MakeTop()
{
int nSize = g_pElementList.size();

for (int iIndex = 0; iIndex < nSize; iIndex++)
{
CBaseElement* pNode = g_pElementList[iIndex];
if (pNode == this)
{
g_pElementList.erase(g_pElementList.begin() + iIndex);
g_pElementList.push_back(this);

break;
}
}
}

Но как сделать так, чтобы элемент курсора отображался последним, а подсказка — вторым?
Я сделал этот метод:

void CBaseElement::MakeTop()
{
int nSize = g_pElementList.size();

for (int iIndex = 0; iIndex < nSize; iIndex++)
{
CBaseElement* pNode = g_pElementList[iIndex];
if (pNode == this)
{
g_pElementList.erase(g_pElementList.begin() + iIndex);
g_pElementList.push_back(this);

for (int iIndex2 = 0; iIndex2 < nSize; iIndex2++)
{
CBaseElement* pNode2 = g_pElementList[iIndex2];
if (pNode2->GetType() == ET_TOOLTIP || pNode2->GetType() == ET_CURSOR)
{
g_pElementList.erase(g_pElementList.begin() + iIndex2);
g_pElementList.push_back(pNode2);
break;
}
}
}
}
}

Мне нужен лучший способ сделать это.
Пожалуйста, скажите мне, что мне делать, я не знаю уже более 7 часов.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]