sprint 1-alpha
|
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