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

Popular posts from this blog

Android : Making Listview full screen -

javascript - Parse JSON from the body of the POST -

javascript - Chrome Extension: Interacting with iframe embedded within popup -