Привет товарищи! Я новичок в 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 часов.
Задача ещё не решена.
Других решений пока нет …