对于任何单击的选项卡,MFC的CTabCtrl :: HitTest函数返回“1”

时间:2015-08-17 10:11:32

标签: c++ mfc hittest ctabctrl

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

我正在使用MFC的CTabCtrl控件并尝试确定单击了哪个选项卡(稍后拖放它)。我觉得应该很容易 - 无论如何都被HitTest函数卡住了,无论点击哪个标签都会返回“1”。

当我最近开始这个项目时,它只是少数几行。提到的HitTest函数用在CHlavniOkno :: CTdi :: OnLButtonDown函数的Tdi.cpp文件中(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);
}

我绝对必须省略一些微小的东西,几乎总是这样......

感谢您抽出时间看看问题。

托马斯

1 个答案:

答案 0 :(得分:1)

声明int idZalozky=HitTest(&hti)>=0正在将idZalozky设置为测试结果HitTest(&hti)>=0。作为布尔测试,它将始终返回0或1。

你可能想要:

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