0

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

我正在使用 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);
}

我肯定遗漏了一些微小的东西,几乎总是如此......

感谢您花时间查看问题。

托马斯

4

1 回答 1

1

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

你可能想要:

int idZalozky=HitTest(&hti);
if (idZalozky>=0)
{
...
}
于 2015-08-17T10:31:53.303 回答