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)>=0
将 idZalozky
设置为测试结果 HitTest(&hti)>=0
。作为布尔测试,这将始终 return 0 或 1。
你可能想要:
int idZalozky=HitTest(&hti);
if (idZalozky>=0)
{
...
}
嗨(虽然问候语通常会被删除),
我正在使用 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)>=0
将 idZalozky
设置为测试结果 HitTest(&hti)>=0
。作为布尔测试,这将始终 return 0 或 1。
你可能想要:
int idZalozky=HitTest(&hti);
if (idZalozky>=0)
{
...
}