Функция 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)
{
...
}
Другие вопросы по тегам