Функция CTabCtrl :: HitTest MFC возвращает & quot; 1 & quot; для любой вкладки нажал

Привет (хотя приветствие обычно удаляется),

Я использую элемент управления CTabCtrl MFC и пытаюсь определить, какая вкладка была нажата (чтобы перетащить & брось это позже). Я подумал, что все должно быть довольно просто — так или иначе, я застрял в функции HitTest, которая возвращает «1» для любой нажатой вкладки.

Поскольку я начал проект совсем недавно, он буквально горстка строк. Упомянутая функция HitTest используется в файле Tdi.cpp в функции CHlavniOkno :: CTdi :: OnLButtonDown (полный исходный код http://nestorovic.hyperlink.cz/cpp_mfc.zip ):

afx_msg void CHlavniOkno::CTdi::OnLButtonDown(UINT flagy,CPoint bod){
if (::DragDetect(m_hWnd,bod)){
TCHITTESTINFO hti={bod};
if (int idZalozky=HitTest(&hti)>=0)
parametryTazeneZalozky=new TParametryTazeneZalozky(this,idZalozky);
}
CTabCtrl::OnLButtonDown(flagy,bod);
}

Я определенно должен был опустить что-то крошечное, как это почти всегда бывает …

Спасибо за ваше время, посмотрев на проблему.

Tomas

0

Решение

Заявление int idZalozky=HitTest(&hti)>=0 устанавливает idZalozky к результату теста HitTest(&hti)>=0, В качестве логического теста это всегда вернет 0 или 1.

Вы, вероятно, хотите:

int idZalozky=HitTest(&hti);
if (idZalozky>=0)
{
...
}
1

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


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