long COptionTree::HitTest(const POINT &pt) { // Declare variables COptionTreeItem* otiItem; POINT ptPoint = pt; CRect rcLabel; // Convert screen to tree coordinates ptPoint.y += m_ptOrigin.y; // Run the hit test if ((otiItem = FindItem(pt)) != NULL) { // -- Column if (!otiItem->IsRootLevel() && pt.x >= m_ptOrigin.x - OT_COLRNG && pt.x <= m_ptOrigin.x + OT_COLRNG) { return OT_HIT_COLUMN; } // -- Attribute if (pt.x > m_ptOrigin.x + OT_COLRNG) { return OT_HIT_ATTRIBUTE; } // -- Expand if (otiItem->HitExpand(ptPoint)) { return OT_HIT_EXPAND; } // -- Label return OT_HIT_LABEL; } // -- Client return OT_HIT_CLIENT; }