Функция CTabCtrl::HitTest MFC возвращает "1" для любой нажатой вкладки
Привет (хотя приветствие обычно удаляется),
Я использую элемент управления 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
1 ответ
Заявление int idZalozky=HitTest(&hti)>=0
устанавливает idZalozky
к результату теста HitTest(&hti)>=0
, В качестве логического теста это всегда будет возвращать либо 0, либо 1.
Вы, вероятно, хотите:
int idZalozky=HitTest(&hti);
if (idZalozky>=0)
{
...
}