MFC 的 CTabCtrl::HitTest 函数 returns 单击任何选项卡的“1”

MFC's CTabCtrl::HitTest function returns "1" for any tab clicked

嗨(虽然问候语通常会被删除),

我正在使用 MFC 的 CTabCtrl 控件并尝试确定单击了哪个选项卡(稍后拖放它)。我认为应该很容易 - 无论如何都被 HitTest 函数卡住了,无论点击哪个选项卡,returns“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);
}

我肯定漏掉了一些小东西,几乎总是这样...

感谢您抽空查看问题。

托马斯

语句 int idZalozky=HitTest(&hti)>=0idZalozky 设置为测试结果 HitTest(&hti)>=0。作为布尔测试,这将始终 return 0 或 1。

你可能想要:

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