sprint 1-alpha
sprint/gtl/TreeView.h
Go to the documentation of this file.
00001 /******************************************************************************
00002  *  GTL: GUI Template Library 
00003  *    A Cross Platform C++ Wrapper for Win32 users
00004  *  Copyright (C) 2007-2011 Paolo Medici (www.pmx.it)
00005  *
00006  *  This library is free software; you can redistribute it and/or
00007  *  modify it under the terms of the GNU Lesser General Public
00008  *  License as published by the Free Software Foundation; either
00009  *  version 2.1 of the License, or (at your option) any later version.
00010  *
00011  *  This library is distributed in the hope that it will be useful,
00012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  *  Lesser General Public License for more details.
00015  *
00016  *  You should have received a copy of the GNU Lesser General Public
00017  *  License along with this library; if not, write to the Free Software
00018  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00019  *
00020  *******************************************************************************/
00021 
00022 #ifndef _SPRINT_TREEVIEW_H
00023 #define _SPRINT_TREEVIEW_H
00024 
00028 #include <sprint/gtl/Window.h>
00029 #include <sprint/gtl/detail/commctrl.h>
00030 
00031 namespace sprint {
00032         namespace gtl {
00033 
00035 class TreeView : public CWindow
00036 {
00037 public:
00038 // Constructors
00039         TreeView(HWND hWnd = NULL) : CWindow(hWnd)
00040         { }
00041 
00042 /*
00043         HWND Create(HWND hWndParent, RECT rect = NULL, LPCTSTR szWindowName = NULL,
00044                         DWORD dwStyle = 0, DWORD dwExStyle = 0,
00045                         ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
00046         {
00047                 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
00048         }
00049 */
00050 
00051 // Attributes
00052         static LPCTSTR GetWndClassName()
00053         {
00054                 return WC_TREEVIEW;
00055         }
00056 
00057         UINT GetCount() const
00058         {
00059                 return (UINT)::SendMessage(m_hwnd, TVM_GETCOUNT, 0, 0L);
00060         }
00061 
00062         UINT GetIndent() const
00063         {
00064                 return (UINT)::SendMessage(m_hwnd, TVM_GETINDENT, 0, 0L);
00065         }
00066 
00067         void SetIndent(UINT nIndent)
00068         {
00069                 ::SendMessage(m_hwnd, TVM_SETINDENT, nIndent, 0L);
00070         }
00071 
00072         HIMAGELIST GetImageList(int nImageListType = TVSIL_NORMAL) const
00073         {
00074                 return ((HIMAGELIST)::SendMessage(m_hwnd, TVM_GETIMAGELIST, (WPARAM)nImageListType, 0L));
00075         }
00076 
00077         HIMAGELIST SetImageList(HIMAGELIST hImageList, int nImageListType = TVSIL_NORMAL)
00078         {
00079                 return ((HIMAGELIST)::SendMessage(m_hwnd, TVM_SETIMAGELIST, (WPARAM)nImageListType, (LPARAM)hImageList));
00080         }
00081 
00082         BOOL GetItem(LPTVITEM pItem) const
00083         {
00084                 return (BOOL)::SendMessage(m_hwnd, TVM_GETITEM, 0, (LPARAM)pItem);
00085         }
00086 
00087         BOOL SetItem(LPTVITEM pItem)
00088         {
00089                 return (BOOL)::SendMessage(m_hwnd, TVM_SETITEM, 0, (LPARAM)pItem);
00090         }
00091 
00092         BOOL SetItem(HTREEITEM hItem, UINT nMask, LPCTSTR lpszItem, int nImage,
00093                 int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam)
00094         {
00095                 TVITEM item = { 0 };
00096                 item.hItem = hItem;
00097                 item.mask = nMask;
00098                 item.pszText = (LPTSTR) lpszItem;
00099                 item.iImage = nImage;
00100                 item.iSelectedImage = nSelectedImage;
00101                 item.state = nState;
00102                 item.stateMask = nStateMask;
00103                 item.lParam = lParam;
00104                 return (BOOL)::SendMessage(m_hwnd, TVM_SETITEM, 0, (LPARAM)&item);
00105         }
00106 
00107         BOOL GetItemText(HTREEITEM hItem, LPTSTR lpstrText, int nLen) const
00108         {
00109                 TVITEM item = { 0 };
00110                 item.hItem = hItem;
00111                 item.mask = TVIF_TEXT;
00112                 item.pszText = lpstrText;
00113                 item.cchTextMax = nLen;
00114 
00115                 return (BOOL)::SendMessage(m_hwnd, TVM_GETITEM, 0, (LPARAM)&item);
00116         }
00117 
00118         BOOL SetItemText(HTREEITEM hItem, LPCTSTR lpszItem)
00119         {
00120                 return SetItem(hItem, TVIF_TEXT, lpszItem, 0, 0, 0, 0, 0);
00121         }
00122 
00123         BOOL GetItemImage(HTREEITEM hItem, int& nImage, int& nSelectedImage) const
00124         {
00125                 TVITEM item = { 0 };
00126                 item.hItem = hItem;
00127                 item.mask = TVIF_IMAGE|TVIF_SELECTEDIMAGE;
00128                 BOOL bRes = (BOOL)::SendMessage(m_hwnd, TVM_GETITEM, 0, (LPARAM)&item);
00129                 if (bRes)
00130                 {
00131                         nImage = item.iImage;
00132                         nSelectedImage = item.iSelectedImage;
00133                 }
00134                 return bRes;
00135         }
00136 
00137         BOOL SetItemImage(HTREEITEM hItem, int nImage, int nSelectedImage)
00138         {
00139                 return SetItem(hItem, TVIF_IMAGE|TVIF_SELECTEDIMAGE, NULL, nImage, nSelectedImage, 0, 0, 0);
00140         }
00141 
00142         UINT GetItemState(HTREEITEM hItem, UINT nStateMask) const
00143         {
00144 #if (_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE)
00145                 return (((UINT)::SendMessage(m_hwnd, TVM_GETITEMSTATE, (WPARAM)hItem, (LPARAM)nStateMask)) & nStateMask);
00146 #else // !((_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE))
00147                 TVITEM item = { 0 };
00148                 item.hItem = hItem;
00149                 item.mask = TVIF_STATE;
00150                 item.state = 0;
00151                 item.stateMask = nStateMask;
00152                 ::SendMessage(m_hwnd, TVM_GETITEM, 0, (LPARAM)&item);
00153                 return (item.state & nStateMask);
00154 #endif // !((_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE))
00155         }
00156 
00157         BOOL SetItemState(HTREEITEM hItem, UINT nState, UINT nStateMask)
00158         {
00159                 return SetItem(hItem, TVIF_STATE, NULL, 0, 0, nState, nStateMask, 0);
00160         }
00161 
00162         DWORD_PTR GetItemData(HTREEITEM hItem) const
00163         {
00164                 TVITEM item = { 0 };
00165                 item.hItem = hItem;
00166                 item.mask = TVIF_PARAM;
00167                 BOOL bRet = (BOOL)::SendMessage(m_hwnd, TVM_GETITEM, 0, (LPARAM)&item);
00168                 return (DWORD_PTR)(bRet ? (DWORD_PTR)item.lParam : (DWORD_PTR)NULL);
00169         }
00170 
00171         BOOL SetItemData(HTREEITEM hItem, DWORD_PTR dwData)
00172         {
00173                 return SetItem(hItem, TVIF_PARAM, NULL, 0, 0, 0, 0, (LPARAM)dwData);
00174         }
00175 
00176         HWND GetEditControl() const
00177         {
00178                 return ((HWND)::SendMessage(m_hwnd, TVM_GETEDITCONTROL, 0, 0L));
00179         }
00180         UINT GetVisibleCount() const
00181         {
00182                 return (UINT)::SendMessage(m_hwnd, TVM_GETVISIBLECOUNT, 0, 0L);
00183         }
00184 
00185         BOOL GetItemRect(HTREEITEM hItem, LPRECT lpRect, BOOL bTextOnly) const
00186         {
00187                 *(HTREEITEM*)lpRect = hItem;
00188                 return (BOOL)::SendMessage(m_hwnd, TVM_GETITEMRECT, (WPARAM)bTextOnly, (LPARAM)lpRect);
00189         }
00190 
00191         BOOL ItemHasChildren(HTREEITEM hItem) const
00192         {
00193                 TVITEM item = { 0 };
00194                 item.hItem = hItem;
00195                 item.mask = TVIF_CHILDREN;
00196                 ::SendMessage(m_hwnd, TVM_GETITEM, 0, (LPARAM)&item);
00197                 return item.cChildren;
00198         }
00199 
00200         int GetISearchString(LPTSTR lpstr) const
00201         {
00202                 return (int)::SendMessage(m_hwnd, TVM_GETISEARCHSTRING, 0, (LPARAM)lpstr);
00203         }
00204 
00205         // checkboxes only
00206         BOOL GetCheckState(HTREEITEM hItem) const
00207         {
00208                 UINT uRet = GetItemState(hItem, TVIS_STATEIMAGEMASK);
00209                 return (uRet >> 12) - 1;
00210         }
00211 
00212         BOOL SetCheckState(HTREEITEM hItem, BOOL bCheck)
00213         {
00214                 int nCheck = bCheck ? 2 : 1;   // one based index
00215                 return SetItemState(hItem, INDEXTOSTATEIMAGEMASK(nCheck), TVIS_STATEIMAGEMASK);
00216         }
00217 
00218 #if (_WIN32_IE >= 0x0400) && !defined(_WIN32_WCE)
00219         COLORREF GetBkColor() const
00220         {
00221                 return (COLORREF)::SendMessage(m_hwnd, TVM_GETBKCOLOR, 0, 0L);
00222         }
00223 
00224         COLORREF SetBkColor(COLORREF clr)
00225         {
00226                 return (COLORREF)::SendMessage(m_hwnd, TVM_SETBKCOLOR, 0, (LPARAM)clr);
00227         }
00228 
00229         COLORREF GetInsertMarkColor() const
00230         {
00231                 return (COLORREF)::SendMessage(m_hwnd, TVM_GETINSERTMARKCOLOR, 0, 0L);
00232         }
00233 
00234         COLORREF SetInsertMarkColor(COLORREF clr)
00235         {
00236                 return (COLORREF)::SendMessage(m_hwnd, TVM_SETINSERTMARKCOLOR, 0, (LPARAM)clr);
00237         }
00238 
00239         int GetItemHeight() const
00240         {
00241                 return (int)::SendMessage(m_hwnd, TVM_GETITEMHEIGHT, 0, 0L);
00242         }
00243 
00244         int SetItemHeight(int cyHeight)
00245         {
00246                 return (int)::SendMessage(m_hwnd, TVM_SETITEMHEIGHT, cyHeight, 0L);
00247         }
00248 
00249         int GetScrollTime() const
00250         {
00251                 return (int)::SendMessage(m_hwnd, TVM_GETSCROLLTIME, 0, 0L);
00252         }
00253 
00254         int SetScrollTime(int nScrollTime)
00255         {
00256                 return (int)::SendMessage(m_hwnd, TVM_SETSCROLLTIME, nScrollTime, 0L);
00257         }
00258 
00259         COLORREF GetTextColor() const
00260         {
00261                 return (COLORREF)::SendMessage(m_hwnd, TVM_GETTEXTCOLOR, 0, 0L);
00262         }
00263 
00264         COLORREF SetTextColor(COLORREF clr)
00265         {
00266                 return (COLORREF)::SendMessage(m_hwnd, TVM_SETTEXTCOLOR, 0, (LPARAM)clr);
00267         }
00268 
00269         BOOL GetUnicodeFormat() const
00270         {
00271                 return (BOOL)::SendMessage(m_hwnd, TVM_GETUNICODEFORMAT, 0, 0L);
00272         }
00273 
00274         BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
00275         {
00276                 return (BOOL)::SendMessage(m_hwnd, TVM_SETUNICODEFORMAT, bUnicode, 0L);
00277         }
00278 #endif // (_WIN32_IE >= 0x0400) && !defined(_WIN32_WCE)
00279 
00280 #if (_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE)
00281         COLORREF GetLineColor() const
00282         {
00283                 return (COLORREF)::SendMessage(m_hwnd, TVM_GETLINECOLOR, 0, 0L);
00284         }
00285 
00286         COLORREF SetLineColor(COLORREF clrNew /*= CLR_DEFAULT*/)
00287         {
00288                 return (COLORREF)::SendMessage(m_hwnd, TVM_SETLINECOLOR, 0, (LPARAM)clrNew);
00289         }
00290 #endif // (_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE)
00291 
00292 #if (_WIN32_IE >= 0x0400) && !defined(_WIN32_WCE)
00293         BOOL GetItem(LPTVITEMEX pItem) const
00294         {
00295                 return (BOOL)::SendMessage(m_hwnd, TVM_GETITEM, 0, (LPARAM)pItem);
00296         }
00297 
00298         BOOL SetItem(LPTVITEMEX pItem)
00299         {
00300                 return (BOOL)::SendMessage(m_hwnd, TVM_SETITEM, 0, (LPARAM)pItem);
00301         }
00302 #endif // (_WIN32_IE >= 0x0400) && !defined(_WIN32_WCE)
00303 
00304         DWORD GetExtendedStyle() const
00305         {
00306 #ifndef TVM_GETEXTENDEDSTYLE
00307                 const UINT TVM_GETEXTENDEDSTYLE = (TV_FIRST + 45);
00308 #endif
00309                 return (DWORD)::SendMessage(m_hwnd, TVM_GETEXTENDEDSTYLE, 0, 0L);
00310         }
00311 
00312         DWORD SetExtendedStyle(DWORD dwStyle, DWORD dwMask)
00313         {
00314 #ifndef TVM_SETEXTENDEDSTYLE
00315                 const UINT TVM_SETEXTENDEDSTYLE = (TV_FIRST + 44);
00316 #endif
00317                 return (DWORD)::SendMessage(m_hwnd, TVM_SETEXTENDEDSTYLE, dwMask, dwStyle);
00318         }
00319 
00320 #if (_WIN32_WINNT >= 0x0600)
00321         BOOL SetAutoScrollInfo(UINT uPixPerSec, UINT uUpdateTime)
00322         {
00323                 return (BOOL)::SendMessage(m_hwnd, TVM_SETAUTOSCROLLINFO, (WPARAM)uPixPerSec, (LPARAM)uUpdateTime);
00324         }
00325 
00326         DWORD GetSelectedCount() const
00327         {
00328                 return (DWORD)::SendMessage(m_hwnd, TVM_GETSELECTEDCOUNT, 0, 0L);
00329         }
00330 
00331         BOOL GetItemPartRect(HTREEITEM hItem, TVITEMPART partID, LPRECT lpRect) const
00332         {
00333                 TVGETITEMPARTRECTINFO gipri = { hItem, lpRect, partID };
00334                 return (BOOL)::SendMessage(m_hwnd, TVM_GETITEMPARTRECT, 0, (LPARAM)&gipri);
00335         }
00336 #endif // (_WIN32_WINNT >= 0x0600)
00337 
00338 // Operations
00339         HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct)
00340         {
00341                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_INSERTITEM, 0, (LPARAM)lpInsertStruct);
00342         }
00343 
00344         HTREEITEM InsertItem(LPCTSTR lpszItem, int nImage,
00345                 int nSelectedImage, HTREEITEM hParent, HTREEITEM hInsertAfter)
00346         {
00347                 return InsertItem(TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE, lpszItem, nImage, nSelectedImage, 0, 0, 0, hParent, hInsertAfter); 
00348         }
00349 
00350         HTREEITEM InsertItem(LPCTSTR lpszItem, HTREEITEM hParent, HTREEITEM hInsertAfter)
00351         {
00352                 return InsertItem(TVIF_TEXT, lpszItem, 0, 0, 0, 0, 0, hParent, hInsertAfter);
00353         }
00354 
00355         HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage,
00356                 int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam,
00357                 HTREEITEM hParent, HTREEITEM hInsertAfter)
00358         {
00359                 TVINSERTSTRUCT tvis = { 0 };
00360                 tvis.hParent = hParent;
00361                 tvis.hInsertAfter = hInsertAfter;
00362                 tvis.item.mask = nMask;
00363                 tvis.item.pszText = (LPTSTR) lpszItem;
00364                 tvis.item.iImage = nImage;
00365                 tvis.item.iSelectedImage = nSelectedImage;
00366                 tvis.item.state = nState;
00367                 tvis.item.stateMask = nStateMask;
00368                 tvis.item.lParam = lParam;
00369                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_INSERTITEM, 0, (LPARAM)&tvis);
00370         }
00371 
00372         BOOL DeleteItem(HTREEITEM hItem)
00373         {
00374                 return (BOOL)::SendMessage(m_hwnd, TVM_DELETEITEM, 0, (LPARAM)hItem);
00375         }
00376 
00377         BOOL DeleteAllItems()
00378         {
00379                 return (BOOL)::SendMessage(m_hwnd, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT);
00380         }
00381 
00382         BOOL Expand(HTREEITEM hItem, UINT nCode = TVE_EXPAND)
00383         {
00384                 return (BOOL)::SendMessage(m_hwnd, TVM_EXPAND, nCode, (LPARAM)hItem);
00385         }
00386 
00387         HTREEITEM GetNextItem(HTREEITEM hItem, UINT nCode) const
00388         {
00389                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, nCode, (LPARAM)hItem);
00390         }
00391 
00392         HTREEITEM GetChildItem(HTREEITEM hItem) const
00393         {
00394                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
00395         }
00396 
00397         HTREEITEM GetNextSiblingItem(HTREEITEM hItem) const
00398         {
00399                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); 
00400         }
00401 
00402         HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const
00403         {
00404                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_PREVIOUS, (LPARAM)hItem);
00405         }
00406 
00407         HTREEITEM GetParentItem(HTREEITEM hItem) const
00408         {
00409                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItem); 
00410         }
00411 
00412         HTREEITEM GetFirstVisibleItem() const
00413         {
00414                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_FIRSTVISIBLE, 0L);
00415         }
00416 
00417         HTREEITEM GetNextVisibleItem(HTREEITEM hItem) const
00418         {
00419                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_NEXTVISIBLE, (LPARAM)hItem);
00420         }
00421 
00422         HTREEITEM GetPrevVisibleItem(HTREEITEM hItem) const
00423         {
00424                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItem);
00425         }
00426 
00427         HTREEITEM GetSelectedItem() const
00428         {
00429                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_CARET, 0L);
00430         }
00431 
00432         HTREEITEM GetDropHilightItem() const
00433         {
00434                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_DROPHILITE, 0L);
00435         }
00436 
00437         HTREEITEM GetRootItem() const
00438         {
00439                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_ROOT, 0L);
00440         }
00441 
00442 #if !defined(_WIN32_WCE) && (_WIN32_IE >= 0x0400)
00443         HTREEITEM GetLastVisibleItem() const
00444         {
00445                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_LASTVISIBLE, 0L);
00446         }
00447 #endif // !defined(_WIN32_WCE) && (_WIN32_IE >= 0x0400)
00448 
00449 #if (_WIN32_IE >= 0x0600)
00450         HTREEITEM GetNextSelectedItem() const
00451         {
00452                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_GETNEXTITEM, TVGN_NEXTSELECTED, 0L);
00453         }
00454 #endif // (_WIN32_IE >= 0x0600)
00455 
00456         BOOL Select(HTREEITEM hItem, UINT nCode)
00457         {
00458                 return (BOOL)::SendMessage(m_hwnd, TVM_SELECTITEM, nCode, (LPARAM)hItem);
00459         }
00460 
00461         BOOL SelectItem(HTREEITEM hItem)
00462         {
00463                 return (BOOL)::SendMessage(m_hwnd, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItem);
00464         }
00465 
00466         BOOL SelectDropTarget(HTREEITEM hItem)
00467         {
00468                 return (BOOL)::SendMessage(m_hwnd, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)hItem);
00469         }
00470 
00471         BOOL SelectSetFirstVisible(HTREEITEM hItem)
00472         {
00473                 return (BOOL)::SendMessage(m_hwnd, TVM_SELECTITEM, TVGN_FIRSTVISIBLE, (LPARAM)hItem);
00474         }
00475 
00476         HWND EditLabel(HTREEITEM hItem)
00477         {
00478                 return ((HWND)::SendMessage(m_hwnd, TVM_EDITLABEL, 0, (LPARAM)hItem));
00479         }
00480 
00481         BOOL EndEditLabelNow(BOOL bCancel)
00482         {
00483                 return (BOOL)::SendMessage(m_hwnd, TVM_ENDEDITLABELNOW, bCancel, 0L);
00484         }
00485 
00486         HTREEITEM HitTest(TVHITTESTINFO* pHitTestInfo) const
00487         {
00488                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_HITTEST, 0, (LPARAM)pHitTestInfo);
00489         }
00490 
00491         HTREEITEM HitTest(POINT pt, UINT* pFlags) const
00492         {
00493                 TVHITTESTINFO hti = { 0 };
00494                 hti.pt = pt;
00495                 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(m_hwnd, TVM_HITTEST, 0, (LPARAM)&hti);
00496                 if (pFlags != NULL)
00497                         *pFlags = hti.flags;
00498                 return hTreeItem;
00499         }
00500 
00501         BOOL SortChildren(HTREEITEM hItem, BOOL bRecurse = FALSE)
00502         {
00503                 return (BOOL)::SendMessage(m_hwnd, TVM_SORTCHILDREN, (WPARAM)bRecurse, (LPARAM)hItem);
00504         }
00505 
00506         BOOL EnsureVisible(HTREEITEM hItem)
00507         {
00508                 return (BOOL)::SendMessage(m_hwnd, TVM_ENSUREVISIBLE, 0, (LPARAM)hItem);
00509         }
00510 
00511         BOOL SortChildrenCB(LPTVSORTCB pSort, BOOL bRecurse = FALSE)
00512         {
00513                 return (BOOL)::SendMessage(m_hwnd, TVM_SORTCHILDRENCB, (WPARAM)bRecurse, (LPARAM)pSort);
00514         }
00515 
00516         HIMAGELIST RemoveImageList(int nImageList)
00517         {
00518                 return ((HIMAGELIST)::SendMessage(m_hwnd, TVM_SETIMAGELIST, (WPARAM)nImageList, 0));
00519         }
00520 
00521         HIMAGELIST CreateDragImage(HTREEITEM hItem)
00522         {
00523                 return ((HIMAGELIST)::SendMessage(m_hwnd, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItem));
00524         }
00525 
00526 #if (_WIN32_IE >= 0x0400) && !defined(_WIN32_WCE)
00527         BOOL SetInsertMark(HTREEITEM hTreeItem, BOOL bAfter)
00528         {
00529                 return (BOOL)::SendMessage(m_hwnd, TVM_SETINSERTMARK, bAfter, (LPARAM)hTreeItem);
00530         }
00531 
00532         BOOL RemoveInsertMark()
00533         {
00534                 return (BOOL)::SendMessage(m_hwnd, TVM_SETINSERTMARK, 0, 0L);
00535         }
00536 #endif // (_WIN32_IE >= 0x0400) && !defined(_WIN32_WCE)
00537 
00538 #if (_WIN32_WINNT >= 0x0501)
00539         HTREEITEM MapAccIDToHTREEITEM(UINT uID) const
00540         {
00541                 return (HTREEITEM)::SendMessage(m_hwnd, TVM_MAPACCIDTOHTREEITEM, uID, 0L);
00542         }
00543 
00544         UINT MapHTREEITEMToAccID(HTREEITEM hTreeItem) const
00545         {
00546                 return (UINT)::SendMessage(m_hwnd, TVM_MAPHTREEITEMTOACCID, (WPARAM)hTreeItem, 0L);
00547         }
00548 #endif // (_WIN32_WINNT >= 0x0501)
00549 
00550 #if (_WIN32_WINNT >= 0x0600)
00551         void ShowInfoTip(HTREEITEM hItem)
00552         {
00553                 ::SendMessage(m_hwnd, TVM_SHOWINFOTIP, 0, (LPARAM)hItem);
00554         }
00555 #endif // (_WIN32_WINNT >= 0x0600)
00556 };
00557 
00558 }
00559 }
00560 
00561 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines