visual c++ - CTreeCtrl: How to clear the focus of selected item -
am new mfc, want replicate exact ctrl+page down , ctrl+page up behavior regular page down/page up keys without supporting keys (ctrl/shift). have been trying clear focus of item getting selected automatically on striking keys page up , page down.
i've tried code not working:
case vk_next: // pagedown case vk_prior: // pageup lhitem = getfocuseditem(); if (isselected(lhitem)) { ctreectrl::setitemstate(lhitem, 0, tvis_selected); } break;
can please me in solving it
the code need written in onselchanging & onselchanged event handler functions
void ctreectrl::onselchanging(nmhdr *pnmhdr, lresult *presult) { htreeitem hnew = pnmtreeview->itemnew.hitem; htreeitem hold = pnmtreeview->itemold.hitem; m_bolditemselected = hold && (ctreectrl::getitemstate(hold, uint(tvis_selected)) & tvis_selected); if (getselectedcount() > 1) { if (m_bpgupstate || m_bpgdownstate) { //check state of new item if ((pnmtreeview->itemnew.state & tvis_selected)) { // if item selected, make sure onselchanged() // "select" ! m_bnewitemselected = true; } else if (!(pnmtreeview->itemnew.state & tvis_selected)) { // new item not selected, make sure onselchanged() // not "re-select" ! m_bnewitemselected = false; ctreectrl::setitemstate(hnew, uint(~tvis_selected), uint(tvis_selected)); } } } void treectrl::onselchanged(nmhdr* pnmhdr, lresult* presult) { nm_treeview* pnmtreeview = (nm_treeview*)pnmhdr; htreeitem itemnew = pnmtreeview->itemnew.hitem; htreeitem itemold = pnmtreeview->itemold.hitem; if ((m_bpgupstate || m_bpgdownstate) && (getselectedcount() > 1) && (pnmtreeview->itemold.hitem != null || pnmtreeview->itemnew.hitem != null)) { // had focus keep selection @ old item if (itemold && m_bolditemselected) { ctreectrl::setitemstate(itemold, uint(tvis_selected), uint(tvis_selected)); m_bolditemselected = false; } else { // do-not select item if not selected ctreectrl::setitemstate(itemold, uint(~tvis_selected), uint(tvis_selected)); } }
in article you'll find solution every thing ctreectrl full-featured tree control
Comments
Post a Comment