TreeCtrl HitTest problem
Ted -- tward@geographix.com
Tuesday, August 06, 1996
Environment: WINNT4.0 beta 2, MSVC 4.1
CTreeStateDlg is CDialog derived.
m_Tree is a valid CTreeCtrl.
My trace statement is always "nowhere", and hItem is always NULL.. Any
ideas?
void CTreeStateDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
UINT Flags;
CPoint Point;
::GetCursorPos(&Point);
ScreenToClient(&Point);
HTREEITEM hItem = m_Tree.HitTest(Point,&Flags);
if (TVHT_ABOVE & Flags)
TRACE ("Above\n");
if (TVHT_BELOW & Flags)
TRACE ("below\n");
if (TVHT_NOWHERE & Flags)
TRACE ("nowhere\n"); // This is the only message I get.
if (TVHT_ONITEM & Flags)
TRACE ("on\n");
if (TVHT_ONITEMBUTTON & Flags)
TRACE ("on button\n");
if (TVHT_ONITEMICON & Flags)
TRACE ("on icon\n");
if (TVHT_ONITEMINDENT & Flags)
TRACE ("on indent\n");
if (TVHT_ONITEMLABEL & Flags)
TRACE ("on label\n");
if (TVHT_ONITEMRIGHT & Flags)
TRACE ("on right\n");
if (TVHT_ONITEMSTATEICON & Flags)
TRACE ("on stateicon\n");
if (TVHT_TOLEFT & Flags)
TRACE ("to left\n");
if (TVHT_TORIGHT & Flags)
TRACE ("to right\n");
}
R.H.J. Geraets -- R.Geraets@Ehv.Tass.Philips.Com
Friday, August 09, 1996
[Moderator's note: There were 10 responses, all essentially the same as
this first one.]
At 09:18 8/6/96 -0600, you wrote:
>Environment: WINNT4.0 beta 2, MSVC 4.1
>
>CTreeStateDlg is CDialog derived.
>m_Tree is a valid CTreeCtrl.
>
>My trace statement is always "nowhere", and hItem is always NULL.. Any
>ideas?
>
>void CTreeStateDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
>{
>
> UINT Flags;
> CPoint Point;
>
> ::GetCursorPos(&Point);
> ScreenToClient(&Point);
>
> HTREEITEM hItem = m_Tree.HitTest(Point,&Flags);
> [....]
>
> if (TVHT_NOWHERE & Flags)
> TRACE ("nowhere\n"); // This is the only message I get.
> [....]
Use
m_Tree.ScreenToClient(&Point);
to convert the screen coordinates to window coordiantes of the tree control.
By calling ScreenToClient(&Point) the coordiantes are converted relative
to the dialog, they need to be converted relative to your tree control.
Hope this helps,
Rene' Geraets
| Вернуться в корень Архива
|