4 class CListView
: public CWindow
8 HWND
Create(HWND hWndParent
, _U_RECT rect
, LPCTSTR szWindowName
= NULL
, DWORD dwStyle
= 0,
9 DWORD dwExStyle
= 0, _U_MENUorID MenuOrID
= 0U, LPVOID lpCreateParam
= NULL
)
11 m_hWnd
= ::CreateWindowEx(dwExStyle
,
17 rect
.m_lpRect
->right
- rect
.m_lpRect
->left
,
18 rect
.m_lpRect
->bottom
- rect
.m_lpRect
->top
,
21 _AtlBaseModule
.GetModuleInstance(),
27 void SetRedraw(BOOL redraw
)
29 SendMessage(WM_SETREDRAW
, redraw
);
32 BOOL
SetTextBkColor(COLORREF cr
)
34 return (BOOL
)SendMessage(LVM_SETTEXTBKCOLOR
, 0, cr
);
37 BOOL
SetBkColor(COLORREF cr
)
39 return (BOOL
)SendMessage(LVM_SETBKCOLOR
, 0, cr
);
42 BOOL
SetTextColor(COLORREF cr
)
44 return (BOOL
)SendMessage(LVM_SETTEXTCOLOR
, 0, cr
);
47 DWORD
SetExtendedListViewStyle(DWORD dw
, DWORD dwMask
= 0)
49 return (DWORD
)SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE
, dwMask
, dw
);
52 int InsertColumn(int iCol
, LV_COLUMN
* pcol
)
54 return (int)SendMessage(LVM_INSERTCOLUMN
, iCol
, reinterpret_cast<LPARAM
>(pcol
));
57 int InsertColumn(int iCol
, LPWSTR pszText
, int fmt
, int width
= -1, int iSubItem
= -1, int iImage
= -1, int iOrder
= -1)
59 LV_COLUMN column
= {0};
60 column
.mask
= LVCF_TEXT
|LVCF_FMT
;
61 column
.pszText
= pszText
;
65 column
.mask
|= LVCF_WIDTH
;
70 column
.mask
|= LVCF_SUBITEM
;
71 column
.iSubItem
= iSubItem
;
75 column
.mask
|= LVCF_IMAGE
;
76 column
.iImage
= iImage
;
80 column
.mask
|= LVCF_ORDER
;
81 column
.iOrder
= iOrder
;
83 return InsertColumn(iCol
, &column
);
86 int GetColumnWidth(int iCol
)
88 return (int)SendMessage(LVM_GETCOLUMNWIDTH
, iCol
);
91 HIMAGELIST
SetImageList(HIMAGELIST himl
, int iImageList
)
93 return (HIMAGELIST
)SendMessage(LVM_SETIMAGELIST
, iImageList
, reinterpret_cast<LPARAM
>(himl
));
96 int InsertItem(const LV_ITEM
* pitem
)
98 return (int)SendMessage(LVM_INSERTITEM
, 0, reinterpret_cast<LPARAM
>(pitem
));
101 BOOL
DeleteItem(int i
)
103 return (BOOL
)SendMessage(LVM_DELETEITEM
, i
, 0);
106 BOOL
GetItem(LV_ITEM
* pitem
)
108 return (BOOL
)SendMessage(LVM_GETITEM
, 0, reinterpret_cast<LPARAM
>(pitem
));
111 BOOL
SetItem(const LV_ITEM
* pitem
)
113 return (BOOL
)SendMessage(LVM_SETITEM
, 0, reinterpret_cast<LPARAM
>(pitem
));
116 BOOL
FindItem(int iStart
, const LV_FINDINFO
* plvfi
)
118 return (BOOL
)SendMessage(LVM_FINDITEM
, iStart
, (LPARAM
) plvfi
);
123 return SendMessage(LVM_GETITEMCOUNT
);
126 BOOL
DeleteAllItems()
128 return (BOOL
)SendMessage(LVM_DELETEALLITEMS
);
133 return (BOOL
)SendMessage(LVM_UPDATE
, i
, 0);
136 UINT
GetSelectedCount()
138 return (UINT
)SendMessage(LVM_GETSELECTEDCOUNT
);
141 BOOL
SortItems(PFNLVCOMPARE pfnCompare
, PVOID lParam
)
143 return (BOOL
)SendMessage(LVM_SORTITEMS
, (WPARAM
)lParam
, (LPARAM
) pfnCompare
);
146 BOOL
EnsureVisible(int i
, BOOL fPartialOK
)
148 return (BOOL
)SendMessage(LVM_ENSUREVISIBLE
, i
, MAKELPARAM((fPartialOK
),0));
151 HWND
EditLabel(int i
)
153 return (HWND
)SendMessage(LVM_EDITLABEL
, i
, 0);
156 int GetSelectionMark()
158 return (int)SendMessage(LVM_GETSELECTIONMARK
);
161 int GetNextItem(int i
, WORD flags
)
163 return (int)SendMessage(LVM_GETNEXTITEM
, i
, MAKELPARAM((flags
),0));
166 void GetItemSpacing(SIZE
& spacing
, BOOL bSmallIconView
= FALSE
)
168 DWORD ret
= SendMessage(LVM_GETITEMSPACING
, bSmallIconView
);
169 spacing
.cx
= LOWORD(ret
);
170 spacing
.cy
= HIWORD(ret
);
173 UINT
GetItemState(int i
, UINT mask
)
175 return SendMessage(LVM_GETITEMSTATE
, i
, (LPARAM
)mask
);
178 void SetItemState(int i
, UINT state
, UINT mask
)
181 item
.stateMask
= mask
;
183 SendMessage(LVM_SETITEMSTATE
, i
, reinterpret_cast<LPARAM
>(&item
));
186 int HitTest(LV_HITTESTINFO
* phtInfo
)
188 return (int)SendMessage(LVM_HITTEST
, 0, reinterpret_cast<LPARAM
>(phtInfo
));
191 DWORD_PTR
GetItemData(int i
)
193 LVITEMW lvItem
= { 0 };
194 lvItem
.mask
= LVIF_PARAM
;
196 BOOL ret
= GetItem(&lvItem
);
197 return (DWORD_PTR
)(ret
? lvItem
.lParam
: NULL
);
200 BOOL
GetSelectedItem(LV_ITEM
* pItem
)
202 pItem
->iItem
= GetNextItem(-1, LVNI_ALL
| LVNI_SELECTED
);
203 if (pItem
->iItem
== -1)
205 return GetItem(pItem
);
208 void GetItemText(int iItem
, int iSubItem
, LPTSTR pszText
, int cchTextMax
)
211 itemInfo
.iSubItem
= iSubItem
;
212 itemInfo
.pszText
= pszText
;
213 itemInfo
.cchTextMax
= cchTextMax
;
215 SendMessage(LVM_GETITEMTEXT
, iItem
, (LPARAM
) &itemInfo
);
218 BOOL
GetItemPosition(int nItem
, POINT
* pPoint
)
220 return (BOOL
)SendMessage(LVM_GETITEMPOSITION
, nItem
, (LPARAM
)pPoint
);
223 BOOL
SetItemPosition(int nItem
, POINT
* pPoint
)
225 return (BOOL
)SendMessage(LVM_SETITEMPOSITION
, nItem
, MAKELPARAM(pPoint
->x
, pPoint
->y
));
228 BOOL
Arrange(UINT nCode
)
230 return (BOOL
)SendMessage(LVM_ARRANGE
, nCode
, 0);
235 template<typename TItemData
= DWORD_PTR
>
239 public: // Configuration methods
241 HWND
Create(HWND hWndParent
, DWORD dwStyles
= 0, DWORD dwExStyles
= 0)
245 dwStyles
= WS_CHILD
| WS_VISIBLE
| WS_CLIPCHILDREN
;
250 dwExStyles
= WS_EX_TOOLWINDOW
;
253 m_hWnd
= CreateWindowExW(dwExStyles
,
257 0, 0, 0, 0, hWndParent
,
259 _AtlBaseModule
.GetModuleInstance(),
265 /* Identify the version we're using */
266 SetButtonStructSize();
271 DWORD
SetButtonStructSize()
273 return SendMessageW(TB_BUTTONSTRUCTSIZE
, sizeof(TBBUTTON
), 0);
278 return (HWND
)SendMessageW(TB_GETTOOLTIPS
);
281 DWORD
SetTooltip(HWND hWndTooltip
)
283 return SendMessageW(TB_SETTOOLTIPS
, hWndTooltip
, 0);
288 return SendMessageW(TB_GETHOTITEM
);
291 DWORD
SetHotItem(INT item
)
293 return SendMessageW(TB_SETHOTITEM
, item
);
296 public: // Button list management methods
299 return SendMessageW(TB_BUTTONCOUNT
);
302 DWORD
GetButton(int index
, TBBUTTON
* btn
)
304 return SendMessageW(TB_GETBUTTON
, index
, reinterpret_cast<LPARAM
>(btn
));
307 DWORD
AddButton(TBBUTTON
* btn
)
309 return SendMessageW(TB_ADDBUTTONS
, 1, reinterpret_cast<LPARAM
>(btn
));
312 DWORD
AddButtons(int count
, TBBUTTON
* buttons
)
314 return SendMessageW(TB_ADDBUTTONS
, count
, reinterpret_cast<LPARAM
>(buttons
));
317 DWORD
InsertButton(int insertAt
, TBBUTTON
* btn
)
319 return SendMessageW(TB_INSERTBUTTON
, insertAt
, reinterpret_cast<LPARAM
>(btn
));
322 DWORD
MoveButton(int oldIndex
, int newIndex
)
324 return SendMessageW(TB_MOVEBUTTON
, oldIndex
, newIndex
);
327 DWORD
DeleteButton(int index
)
329 return SendMessageW(TB_DELETEBUTTON
, index
, 0);
332 DWORD
GetButtonInfo(int cmdId
, TBBUTTONINFO
* info
)
334 return SendMessageW(TB_GETBUTTONINFO
, cmdId
, reinterpret_cast<LPARAM
>(info
));
337 DWORD
SetButtonInfo(int cmdId
, TBBUTTONINFO
* info
)
339 return SendMessageW(TB_SETBUTTONINFO
, cmdId
, reinterpret_cast<LPARAM
>(info
));
342 DWORD
CheckButton(int cmdId
, BOOL bCheck
)
344 return SendMessageW(TB_CHECKBUTTON
, cmdId
, MAKELPARAM(bCheck
, 0));
347 public: // Layout management methods
348 DWORD
GetButtonSize()
350 return SendMessageW(TB_GETBUTTONSIZE
);
353 DWORD
SetButtonSize(int w
, int h
)
355 return SendMessageW(TB_SETBUTTONSIZE
, 0, MAKELPARAM(w
, h
));
360 return SendMessageW(TB_AUTOSIZE
);
363 DWORD
GetMaxSize(LPSIZE size
)
365 return SendMessageW(TB_GETMAXSIZE
, 0, reinterpret_cast<LPARAM
>(size
));
368 DWORD
GetIdealSize(BOOL useHeight
, LPSIZE size
)
370 return SendMessageW(TB_GETIDEALSIZE
, useHeight
, reinterpret_cast<LPARAM
>(size
));
373 DWORD
GetMetrics(TBMETRICS
* tbm
)
375 return SendMessageW(TB_GETMETRICS
, 0, reinterpret_cast<LPARAM
>(tbm
));
378 DWORD
SetMetrics(TBMETRICS
* tbm
)
380 return SendMessageW(TB_SETMETRICS
, 0, reinterpret_cast<LPARAM
>(tbm
));
383 DWORD
GetItemRect(int index
, LPRECT prcItem
)
385 return SendMessageW(TB_GETITEMRECT
, index
, reinterpret_cast<LPARAM
>(prcItem
));
388 DWORD
SetRedraw(BOOL bEnable
)
390 return SendMessageW(WM_SETREDRAW
, bEnable
);
395 return SendMessageW(TB_GETPADDING
);
398 DWORD
SetPadding(int x
, int y
)
400 return SendMessageW(TB_SETPADDING
, 0, MAKELPARAM(x
, y
));
403 public: // Image list management methods
404 HIMAGELIST
SetImageList(HIMAGELIST himl
)
406 return (HIMAGELIST
)SendMessageW(TB_SETIMAGELIST
, 0, reinterpret_cast<LPARAM
>(himl
));
409 public: // Other methods
410 INT
HitTest(PPOINT ppt
)
412 return (INT
) SendMessageW(TB_HITTEST
, 0, reinterpret_cast<LPARAM
>(ppt
));
415 public: // Utility methods
416 TItemData
* GetItemData(int index
)
419 GetButton(index
, &btn
);
420 return (TItemData
*) btn
.dwData
;
423 DWORD
SetItemData(int index
, TItemData
* data
)
425 TBBUTTONINFOW info
= { 0 };
426 info
.cbSize
= sizeof(info
);
427 info
.dwMask
= TBIF_BYINDEX
| TBIF_LPARAM
;
428 info
.lParam
= (DWORD_PTR
) data
;
429 return SetButtonInfo(index
, &info
);
437 VOID
SetText(LPCWSTR lpszText
)
439 SendMessage(SB_SETTEXT
, SBT_NOBORDERS
, (LPARAM
) lpszText
);
442 HWND
Create(HWND hwndParent
, HMENU hMenu
)
444 m_hWnd
= CreateWindowExW(0,
447 WS_CHILD
| WS_VISIBLE
| SBARS_SIZEGRIP
,
451 _AtlBaseModule
.GetModuleInstance(),
463 HWND
Create(HWND hwndParent
)
465 m_hWnd
= CreateWindowExW(WS_EX_CLIENTEDGE
,
468 WS_CHILD
| WS_VISIBLE
| TVS_HASLINES
| TVS_SHOWSELALWAYS
,
472 _AtlBaseModule
.GetModuleInstance(),
478 HTREEITEM
AddItem(HTREEITEM hParent
, LPWSTR lpText
, INT Image
, INT SelectedImage
, LPARAM lParam
)
480 TVINSERTSTRUCTW Insert
;
482 ZeroMemory(&Insert
, sizeof(TV_INSERTSTRUCT
));
484 Insert
.item
.mask
= TVIF_TEXT
| TVIF_PARAM
| TVIF_IMAGE
| TVIF_SELECTEDIMAGE
;
485 Insert
.hInsertAfter
= TVI_LAST
;
486 Insert
.hParent
= hParent
;
487 Insert
.item
.iSelectedImage
= SelectedImage
;
488 Insert
.item
.iImage
= Image
;
489 Insert
.item
.lParam
= lParam
;
490 Insert
.item
.pszText
= lpText
;
492 return InsertItem(&Insert
);
495 void SetRedraw(BOOL redraw
)
497 SendMessage(WM_SETREDRAW
, redraw
);
500 BOOL
SetBkColor(COLORREF cr
)
502 return (BOOL
) SendMessage(TVM_SETBKCOLOR
, 0, cr
);
505 BOOL
SetTextColor(COLORREF cr
)
507 return (BOOL
) SendMessage(TVM_SETTEXTCOLOR
, 0, cr
);
510 HIMAGELIST
SetImageList(HIMAGELIST himl
, int iImageList
)
512 return (HIMAGELIST
) SendMessage(TVM_SETIMAGELIST
, iImageList
, reinterpret_cast<LPARAM
>(himl
));
515 HTREEITEM
InsertItem(const TVINSERTSTRUCTW
* pitem
)
517 return (HTREEITEM
) SendMessage(TVM_INSERTITEM
, 0, reinterpret_cast<LPARAM
>(pitem
));
520 BOOL
DeleteItem(HTREEITEM i
)
522 return (BOOL
) SendMessage(TVM_DELETEITEM
, 0, (LPARAM
)i
);
525 BOOL
GetItem(TV_ITEM
* pitem
)
527 return (BOOL
) SendMessage(TVM_GETITEM
, 0, reinterpret_cast<LPARAM
>(pitem
));
530 BOOL
SetItem(const TV_ITEM
* pitem
)
532 return (BOOL
) SendMessage(TVM_SETITEM
, 0, reinterpret_cast<LPARAM
>(pitem
));
537 return SendMessage(TVM_GETCOUNT
);
540 BOOL
EnsureVisible(HTREEITEM i
)
542 return (BOOL
) SendMessage(TVM_ENSUREVISIBLE
, 0, (LPARAM
)i
);
545 HWND
EditLabel(HTREEITEM i
)
547 return (HWND
) SendMessage(TVM_EDITLABEL
, 0, (LPARAM
)i
);
550 HTREEITEM
GetNextItem(HTREEITEM i
, WORD flags
)
552 return (HTREEITEM
)SendMessage(TVM_GETNEXTITEM
, flags
, (LPARAM
)i
);
555 UINT
GetItemState(int i
, UINT mask
)
557 return SendMessage(TVM_GETITEMSTATE
, i
, (LPARAM
) mask
);
560 HTREEITEM
HitTest(TVHITTESTINFO
* phtInfo
)
562 return (HTREEITEM
) SendMessage(TVM_HITTEST
, 0, reinterpret_cast<LPARAM
>(phtInfo
));
565 DWORD_PTR
GetItemData(HTREEITEM item
)
569 lvItem
.mask
= TVIF_PARAM
;
570 BOOL ret
= GetItem(&lvItem
);
571 return (DWORD_PTR
) (ret
? lvItem
.lParam
: NULL
);
574 HTREEITEM
GetSelection()
576 return GetNextItem(NULL
, TVGN_CARET
);
579 BOOL
Expand(HTREEITEM item
, DWORD action
)
581 return SendMessage(TVM_EXPAND
, action
, (LPARAM
)item
);
584 BOOL
SelectItem(HTREEITEM item
, DWORD action
= TVGN_CARET
)
586 return SendMessage(TVM_SELECTITEM
, action
, (LPARAM
) item
);
594 public: // Configuration methods
596 HWND
Create(HWND hWndParent
, DWORD dwStyles
= WS_POPUP
| TTS_NOPREFIX
, DWORD dwExStyles
= WS_EX_TOPMOST
)
599 return CWindow::Create(TOOLTIPS_CLASS
, hWndParent
, r
, L
"", dwStyles
, dwExStyles
);
602 public: // Relay event
604 // Win7+: Can use GetMessageExtraInfo to provide the WPARAM value.
605 VOID
RelayEvent(MSG
* pMsg
, WPARAM extraInfo
= 0)
607 SendMessageW(TTM_RELAYEVENT
, extraInfo
, reinterpret_cast<LPARAM
>(pMsg
));
614 return SendMessageW(TTM_GETTOOLCOUNT
, 0, 0);
617 BOOL
AddTool(IN CONST TTTOOLINFOW
* pInfo
)
619 return SendMessageW(TTM_ADDTOOL
, 0, reinterpret_cast<LPARAM
>(pInfo
));
622 VOID
DelTool(IN HWND hwndToolOwner
, IN UINT uId
)
624 TTTOOLINFOW info
= { sizeof(TTTOOLINFOW
), 0 };
625 info
.hwnd
= hwndToolOwner
;
627 SendMessageW(TTM_DELTOOL
, 0, reinterpret_cast<LPARAM
>(&info
));
630 VOID
NewToolRect(IN HWND hwndToolOwner
, IN UINT uId
, IN RECT rect
)
632 TTTOOLINFOW info
= { sizeof(TTTOOLINFOW
), 0 };
633 info
.hwnd
= hwndToolOwner
;
636 SendMessageW(TTM_NEWTOOLRECT
, 0, reinterpret_cast<LPARAM
>(&info
));
639 BOOL
GetToolInfo(IN HWND hwndToolOwner
, IN UINT uId
, IN OUT TTTOOLINFOW
* pInfo
)
641 pInfo
->hwnd
= hwndToolOwner
;
643 return SendMessageW(TTM_GETTOOLINFO
, 0, reinterpret_cast<LPARAM
>(pInfo
));
646 VOID
SetToolInfo(IN CONST TTTOOLINFOW
* pInfo
)
648 SendMessageW(TTM_SETTOOLINFO
, 0, reinterpret_cast<LPARAM
>(pInfo
));
651 BOOL
HitTest(IN CONST TTHITTESTINFOW
* pInfo
)
653 return SendMessageW(TTM_HITTEST
, 0, reinterpret_cast<LPARAM
>(pInfo
));
656 VOID
GetText(IN HWND hwndToolOwner
, IN UINT uId
, OUT PWSTR pBuffer
, IN DWORD cchBuffer
)
658 TTTOOLINFOW info
= { sizeof(TTTOOLINFOW
), 0 };
659 info
.hwnd
= hwndToolOwner
;
661 info
.lpszText
= pBuffer
;
662 SendMessageW(TTM_GETTEXT
, cchBuffer
, reinterpret_cast<LPARAM
>(&info
));
665 VOID
UpdateTipText(IN HWND hwndToolOwner
, IN UINT uId
, IN PCWSTR szText
, IN HINSTANCE hinstResourceOwner
= NULL
)
667 TTTOOLINFOW info
= { sizeof(TTTOOLINFOW
), 0 };
668 info
.hwnd
= hwndToolOwner
;
670 info
.lpszText
= const_cast<PWSTR
>(szText
);
671 info
.hinst
= hinstResourceOwner
;
672 SendMessageW(TTM_UPDATETIPTEXT
, 0, reinterpret_cast<LPARAM
>(&info
));
675 BOOL
EnumTools(IN CONST TTTOOLINFOW
* pInfo
)
677 return SendMessageW(TTM_ENUMTOOLS
, 0, reinterpret_cast<LPARAM
>(pInfo
));
680 BOOL
GetCurrentTool(OUT OPTIONAL TTTOOLINFOW
* pInfo
= NULL
)
682 return SendMessageW(TTM_GETCURRENTTOOL
, 0, reinterpret_cast<LPARAM
>(pInfo
));
685 VOID
GetTitle(TTGETTITLE
* pTitleInfo
)
687 SendMessageW(TTM_GETTITLE
, 0, reinterpret_cast<LPARAM
>(pTitleInfo
));
690 BOOL
SetTitle(PCWSTR szTitleText
, WPARAM icon
= 0)
692 return SendMessageW(TTM_SETTITLE
, icon
, reinterpret_cast<LPARAM
>(szTitleText
));
695 VOID
TrackActivate(IN HWND hwndToolOwner
, IN UINT uId
)
697 TTTOOLINFOW info
= { sizeof(TTTOOLINFOW
), 0 };
698 info
.hwnd
= hwndToolOwner
;
700 SendMessageW(TTM_TRACKACTIVATE
, TRUE
, reinterpret_cast<LPARAM
>(&info
));
703 VOID
TrackDeactivate()
705 SendMessageW(TTM_TRACKACTIVATE
, FALSE
, NULL
);
708 VOID
TrackPosition(IN WORD x
, IN WORD y
)
710 SendMessageW(TTM_TRACKPOSITION
, 0, MAKELPARAM(x
, y
));
716 SendMessageW(TTM_POPUP
);
719 // Closes the tooltip - Pressing the [X] for a TTF_CLOSE balloon is equivalent to calling this
722 SendMessageW(TTM_POP
);
725 // Delay times for AUTOMATIC tooltips (they don't affect balloons)
726 INT
GetDelayTime(UINT which
)
728 return SendMessageW(TTM_GETDELAYTIME
, which
);
731 VOID
SetDelayTime(UINT which
, WORD time
)
733 SendMessageW(TTM_SETDELAYTIME
, which
, MAKELPARAM(time
, 0));
736 // Activates or deactivates the automatic tooltip display when hovering a control
737 VOID
Activate(IN BOOL bActivate
= TRUE
)
739 SendMessageW(TTM_ACTIVATE
, bActivate
);
742 // Adjusts the position of a tooltip when used to display trimmed text
743 VOID
AdjustRect(IN BOOL bTextToWindow
, IN OUT RECT
* pRect
)
745 SendMessageW(TTM_ADJUSTRECT
, bTextToWindow
, reinterpret_cast<LPARAM
>(pRect
));
748 // Useful for TTF_ABSOLUTE|TTF_TRACK tooltip positioning
749 SIZE
GetBubbleSize(IN TTTOOLINFOW
* pInfo
)
751 DWORD ret
= SendMessageW(TTM_GETBUBBLESIZE
, 0, reinterpret_cast<LPARAM
>(pInfo
));
752 const SIZE sz
= { LOWORD(ret
), HIWORD(ret
) };
756 // Fills the RECT with the margin size previously set. Default is 0 margins.
757 VOID
GetMargin(OUT RECT
* pRect
)
759 SendMessageW(TTM_GETMARGIN
, 0, reinterpret_cast<LPARAM
>(pRect
));
762 VOID
SetMargin(IN RECT
* pRect
)
764 SendMessageW(TTM_SETMARGIN
, 0, reinterpret_cast<LPARAM
>(pRect
));
767 // Gets a previously established max width. Returns -1 if no limit is set
770 return SendMessageW(TTM_GETMAXTIPWIDTH
);
773 INT
SetMaxTipWidth(IN OPTIONAL INT width
= -1)
775 return SendMessageW(TTM_SETMAXTIPWIDTH
, 0, width
);
778 // Get the color of the tooltip text
779 COLORREF
GetTipTextColor()
781 return SendMessageW(TTM_GETTIPTEXTCOLOR
);
784 VOID
SetTipTextColor(IN COLORREF textColor
)
786 SendMessageW(TTM_SETTIPTEXTCOLOR
, textColor
);
789 COLORREF
GetTipBkColor()
791 return SendMessageW(TTM_GETTIPBKCOLOR
);
794 VOID
SetTipBkColor(IN COLORREF textColor
)
796 SendMessageW(TTM_SETTIPBKCOLOR
, textColor
);
799 VOID
SetWindowTheme(IN PCWSTR szThemeName
)
801 SendMessageW(TTM_SETWINDOWTHEME
, 0, reinterpret_cast<LPARAM
>(szThemeName
));
807 SendMessageW(TTM_UPDATE
);
810 HWND
WindowFromPoint(IN POINT
* pPoint
)
812 return reinterpret_cast<HWND
>(SendMessageW(TTM_WINDOWFROMPOINT
, 0, reinterpret_cast<LPARAM
>(pPoint
)));