LONG CPropTree::HitTest(const POINT& pt) { POINT p = pt; CPropTreeItem* pItem; // convert screen to tree coordinates p.y += m_Origin.y; if ((pItem = FindItem(pt))!=NULL) { if (!pItem->IsRootLevel() && pt.x >= m_Origin.x - PROPTREEITEM_COLRNG && pt.x <= m_Origin.x + PROPTREEITEM_COLRNG) return HTCOLUMN; if (pItem->HitButton(p)) { return HTBUTTON; } if (pt.x > m_Origin.x + PROPTREEITEM_COLRNG) return HTATTRIBUTE; if (pItem->HitExpand(p)) return HTEXPAND; if (pItem->HitCheckBox(p)) return HTCHECKBOX; return HTLABEL; } return HTCLIENT; }
LONG CPropTree::HitTest(const POINT& pt) { POINT p = pt; CPropTreeItem* pItem; // convert screen to tree coordinates p.y += m_Origin.y; if ((pItem = FindItem(pt))!=NULL) { // 분리선을 움직일수 있는지 없는지를 판단한다. pItem->IsRootLevel() || pItem->m_bNoRoot if ( pItem->GetSeparator() && ( !pItem->IsRootLevel() || pItem->GetRootState() ) && pt.x >= m_Origin.x - PROPTREEITEM_COLRNG && pt.x <= m_Origin.x + PROPTREEITEM_COLRNG ) return HTCOLUMN; if (pt.x > m_Origin.x + PROPTREEITEM_COLRNG) return HTATTRIBUTE; if (pItem->HitExpand(p)) return HTEXPAND; if (pItem->HitCheckBox(p)) return HTCHECKBOX; return HTLABEL; } return HTCLIENT; }