본문 바로가기
실전 임베디드

CTreeCtrl에서 포커스를 잃어도 선택된 상태를 유지하도록 하려면... 실전 임베디드 2016. 11. 10. 16

by BABEL-II 2019. 9. 24.

http://egloos.zum.com/jsjilord/v/9735821

CTreeCtrl에서 포커스를 잃어도 선택된 상태를 유지하도록 하려면...

보통 CTreeCtrl의 스타일에 TVS_SHOWSELALWAYS를 셋팅해서 처리한다. 하지만 포커스를 얻었을 때는 배경색이 파란색이었다가 ...

egloos.zum.com

윗분 덕을 봤습니다.

 

 mBinderTree.SelectItem(hBinder_0);

-- 아래 줄은 별 소용이 없습니다.

// mBinderTree.SetItemState(hBinder_0, TVIS_SELECTED, TVIS_SELECTED);

void CRDMSClientDlg::OnTvnSelchangedBinderTree(NMHDR *pNMHDR, LRESULT *pResult)
{
 LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
 // TODO: Add your control notification handler code here

 //
 st_binder *item = (st_binder*)mBinderTree.GetItemData(pNMTreeView->itemNew.hItem);
 if (item != NULL) {
  saved_binder = *item;
  jiwon.Format(L"/%s/%s/%s", item->c_cabinet_name, item->b_drawer_name, item->d_binder_name);
  mBinderPath.SetWindowTextW(jiwon);
 }
 mBinderTree.Select(pNMTreeView->itemNew.hItem, TVGN_DROPHILITE);

 *pResult = 0;
}