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