7 #ifndef _INC_cWndControls2_H
8 #define _INC_cWndControls2_H
36 cWndRichEditCtrl(cWndHandle* pWndParent,
DLGID_t id) : cWndEdit(pWndParent, id)
39 static HMODULE WINAPI InitLoadLibrary();
41 BOOL SetTextMode(UINT uMask)
44 return((BOOL)SendMessageX(EM_SETTEXTMODE, uMask));
49 return((UINT)SendMessageX(EM_GETTEXTMODE));
54 return((
COLORREF)(
unsigned)SendMessageX(EM_SETBKGNDCOLOR, (WPARAM)bSysColor, (LPARAM)cr));
57 void SetSel(
int nStartChar,
int nEndChar)
60 range.cpMin = nStartChar;
61 range.cpMax = nEndChar;
62 SendMessageX(EM_EXSETSEL, 0, (LPARAM)&range);
64 CHARRANGE GetSelRange()
const
67 SendMessageX(EM_EXGETSEL, 0, (LPARAM)&range);
70 void GetSel(
int& nStartChar,
int& nEndChar)
const
72 CHARRANGE range = GetSelRange();
73 nStartChar = range.cpMin;
74 nEndChar = range.cpMax;
76 long GetSelText(
GChar_t* lpBuf)
const
79 return (
long)SendMessageX(EM_GETSELTEXT, 0, (LPARAM)lpBuf);
81 long GetSelTextLen()
const
83 CHARRANGE range = GetSelRange();
84 return(range.cpMax - range.cpMin);
89 void ReplaceSel(
const GChar_t* lpszNewText, BOOL bCanUndo =
false)
92 _GTN(SETTEXTEX) settext;
93 settext.flags = (bCanUndo) ? (ST_SELECTION | ST_KEEPUNDO) : (ST_SELECTION);
95 int iBytesMoved = (int)SendMessageX(EM_SETTEXTEX, (WPARAM)&settext, (LPARAM)lpszNewText);
102 SendMessageX((WM_USER + 49));
105 void SetAutoUrlDetect(
bool bActive)
107 SendMessageX(EM_AUTOURLDETECT, (WPARAM)bActive);
111 BOOL SetDefaultCharFormat(
_GTN(CHARFORMAT)& cf)
113 return((BOOL)(DWORD)SendMessageX(EM_SETCHARFORMAT, (WPARAM)SCF_DEFAULT, (LPARAM)&cf));
115 BOOL SetSelectionCharFormat(
_GTN(CHARFORMAT)& cf)
117 return((BOOL)(DWORD)SendMessageX(EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&cf));
121 long GetEventMask()
const
124 return((DWORD)SendMessageX(EM_GETEVENTMASK));
126 DWORD SetEventMask(DWORD dwEventMask = ENM_NONE)
130 return((DWORD)SendMessageX(EM_SETEVENTMASK, 0, (LPARAM)dwEventMask));
133 long FindTextX(DWORD dwFlags,
_GTN(FINDTEXTEX)* pFindText)
const
137 return((
long)SendMessageX(EM_FINDTEXTEX, dwFlags, (LPARAM)pFindText));
142 static DWORD CALLBACK EditStreamCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb);
143 bool SetTextFromFile(
const FILECHAR_t* pszFilename);
151 struct cListCtrlColumn;
152 class cListCtrlHelper;
165 cWndListCtrl(cWndHandle* pWndParent,
DLGID_t id) : cWndHandle(pWndParent, id)
167 virtual ~cWndListCtrl()
171 #if (_WIN32_IE >= 0x0300)
172 DWORD GetExtendedStyle()
const
174 return (DWORD)SendMessageX(LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
176 DWORD SetExtendedStyle(DWORD dwNewStyle)
const
179 return (DWORD)SendMessageX(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)dwNewStyle);
183 HIMAGELIST SetImageList(HIMAGELIST hImageList,
int nImageList)
const
185 return (HIMAGELIST)SendMessageX(LVM_SETIMAGELIST, nImageList, (LPARAM)hImageList);
189 int GetItemCount()
const
191 return (
int)SendMessageX(LVM_GETITEMCOUNT, 0, 0L);
195 BOOL GetItem(
_GTN(LVITEM)* pItem)
const
197 return (BOOL)SendMessageX(LVM_GETITEM, 0, (LPARAM)pItem);
201 BOOL SetItem(
const _GTN(LVITEM)* pItem)
203 return (BOOL)SendMessageX(LVM_SETITEM, 0, (LPARAM)pItem);
205 BOOL SetItem(
int nItem,
int nSubItem, UINT nMask,
const GChar_t* lpszItem,
206 int nImage, UINT nState, UINT nStateMask, LPARAM lParam,
int nIndent = 0);
209 BOOL GetColumn(
int nCol,
_GTN(LVCOLUMN)* pColumn)
const
211 return (BOOL)SendMessageX(LVM_GETCOLUMN, nCol, (LPARAM)pColumn);
215 BOOL SetColumn(
int nCol,
const _GTN(LVCOLUMN)* pColumn)
217 return (BOOL)SendMessageX(LVM_SETCOLUMN, nCol, (LPARAM)pColumn);
221 int GetColumnWidth(
int nCol)
const
223 return (
int)SendMessageX(LVM_GETCOLUMNWIDTH, nCol, 0);
227 BOOL SetColumnWidth(
int nCol,
int cx)
229 return (BOOL)SendMessageX(LVM_SETCOLUMNWIDTH, nCol, MAKELPARAM(cx, 0));
232 BOOL SetItemState(
int nItem,
_GTN(LVITEM)* pItem)
235 return (BOOL)SendMessageX(LVM_SETITEMSTATE, nItem, (LPARAM)pItem);
237 BOOL SetItemState(
int nItem, UINT nState, UINT nStateMask);
239 UINT GetItemState(
int nItem, UINT nStateMask)
const
243 return (UINT)SendMessageX(LVM_GETITEMSTATE, nItem, nStateMask);
251 BOOL SetItemText(
int nItem,
int nSubItem,
const GChar_t* lpszText);
253 void SetItemCount(
int nItems)
259 SendMessageX(LVM_SETITEMCOUNT, nItems, 0);
261 BOOL SetItemData(
int nItem, DWORD_PTR dwItemData)
264 return SetItem(nItem, 0, LVIF_PARAM,
nullptr, 0, 0, 0, (LPARAM)dwItemData);
268 LPARAM GetItemData(
int nItem)
const;
271 UINT GetSelectedCount()
const
273 return (UINT)SendMessageX(LVM_GETSELECTEDCOUNT, 0, 0L);
276 int GetNextItem(
int nItem,
int nFlags)
const
278 return (
int)SendMessageX(LVM_GETNEXTITEM, nItem, MAKELPARAM(nFlags, 0));
281 DWORD_PTR GetFirstSelectedItemPosition()
const
286 return (DWORD_PTR)(1 + GetNextItem(-1, LVIS_SELECTED));
288 int GetNextSelectedItem(DWORD_PTR& nPos)
const
292 DWORD_PTR nPosOld = (DWORD_PTR)(nPos - 1);
293 nPos = (DWORD_PTR)(1 + GetNextItem((UINT)nPosOld, LVIS_SELECTED));
294 return (UINT)nPosOld;
297 bool ClearSelectedStates()
300 DWORD_PTR nPos = GetFirstSelectedItemPosition();
307 int iSelect = GetNextSelectedItem(nPos);
310 SetItemState(iSelect, 0, LVIS_SELECTED);
314 BOOL SetCurSel(
int idCurSel)
318 ClearSelectedStates();
319 return SetItemState(idCurSel, LVIS_SELECTED, LVIS_SELECTED);
321 int GetCurSel()
const
324 DWORD_PTR nPos = GetFirstSelectedItemPosition();
327 int iSelect = GetNextSelectedItem(nPos);
333 int SetSelectionMark(
int iIndex)
335 return (
int)SendMessageX(LVM_SETSELECTIONMARK, 0, (LPARAM)iIndex);
337 int GetSelectionMark()
340 return (
int)SendMessageX(LVM_GETSELECTIONMARK, 0, 0);
346 int InsertItem(
const _GTN(LVITEM)* pItem)
350 return (
int)SendMessageX(LVM_INSERTITEM, 0, (LPARAM)pItem);
354 int InsertItem(UINT nMask ,
int nItem,
const GChar_t* lpszItem, UINT nState, UINT nStateMask,
355 int nImage, LPARAM lParam);
357 BOOL DeleteItem(
int nItem)
360 return (BOOL)SendMessageX(LVM_DELETEITEM, nItem, 0L);
363 BOOL DeleteAllItems()
366 return (BOOL)SendMessageX(LVM_DELETEALLITEMS, 0, 0L);
369 int InsertColumn(
int nCol,
const _GTN(LVCOLUMN)* pColumn)
372 return (
int)SendMessageX(LVM_INSERTCOLUMN, nCol, (LPARAM)pColumn);
377 BOOL DeleteColumn(
int nCol)
379 return (BOOL)SendMessageX(LVM_DELETECOLUMN, nCol, 0);
382 #if (_WIN32_IE >= 0x0300) && ! defined(UNDER_CE)
386 return (
int)SendMessageX(LVM_GETHOTITEM, 0, 0);
389 int SetHotItem(
int iIndex)
391 return (
int)SendMessageX(LVM_SETHOTITEM, (WPARAM)iIndex, 0);
395 int FindItem(
_GTN(LVFINDINFO)* pFindInfo,
int nStart = -1)
const
400 return (
int)SendMessageX(LVM_FINDITEM, nStart, (LPARAM)pFindInfo);
402 int FindItemBylParam(LPARAM lParam,
int nStart = -1)
const
407 _GTN(LVFINDINFO) FindInfo;
409 FindInfo.flags = LVFI_PARAM;
411 FindInfo.lParam = lParam;
412 return FindItem(&FindInfo, nStart);
414 BOOL SortItems(PFNLVCOMPARE pfnCompare, DWORD_PTR dwData)
416 return (BOOL)SendMessageX(LVM_SORTITEMS, (WPARAM)(LPARAM)(dwData), (LPARAM)(PFNLVCOMPARE)(pfnCompare));
428 cWndSliderCtrl(cWndHandle* pWndParent,
DLGID_t id) : cWndHandle(pWndParent, id)
430 virtual ~cWndSliderCtrl()
434 void SetRangeMin(
int nMin, BOOL bRedraw)
436 SendMessageX(TBM_SETRANGEMIN, bRedraw, nMin);
438 void SetRangeMax(
int nMax, BOOL bRedraw)
440 SendMessageX(TBM_SETRANGEMAX, bRedraw, nMax);
445 return (
int)SendMessageX(TBM_GETPOS, 0, 0l);
447 void SetPos(
int nPos)
449 SendMessageX(TBM_SETPOS,
true, nPos);
462 cWndProgressCtrl(cWndHandle* pWndParent,
DLGID_t id) : cWndHandle(pWndParent, id)
464 virtual ~cWndProgressCtrl()
468 void SetRange(
short nLower,
short nUpper)
472 SendMessageX(PBM_SETRANGE, 0, MAKELPARAM(nLower, nUpper));
475 void SetRange32(
int nLower,
int nUpper)
478 SendMessageX(PBM_SETRANGE32, (WPARAM)nLower, (LPARAM)nUpper);
487 return (
int)SendMessageX(PBM_GETPOS, 0, 0);
493 return (
int)SendMessageX(PBM_SETPOS, nPos, 0L);
496 int OffsetPos(
int nPos)
500 return (
int)SendMessageX(PBM_DELTAPOS, nPos, 0L);
503 int SetStep(
int nStep)
506 return (
int)SendMessageX(PBM_SETSTEP, nStep, 0L);
513 return (
COLORREF)SendMessageX(PBM_SETBKCOLOR, 0, (LPARAM)clrNew);
517 return (
COLORREF)SendMessageX(PBM_SETBARCOLOR, 0, (LPARAM)clrNew);
526 return (
int)SendMessageX(PBM_STEPIT, 0, 0L);
539 cWndTabCtrl(cWndHandle* pWndParent,
DLGID_t id) : cWndHandle(pWndParent, id)
541 virtual ~cWndTabCtrl()
547 typedef cWndSliderCtrl CSliderCtrl;
548 typedef cWndProgressCtrl CProgressCtrl;
549 typedef cWndListCtrl CListCtrl;
551 typedef cWndRichEditCtrl CRichEditCtrl;
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define _GTN(c)
_WIN32 name has a A or W for UTF8 or UNICODE (like _FNF)
Definition: StrConst.h:28
#define ASSERT(exp)
Definition: cDebugAssert.h:87
#define WINHANDLE_NULL
HWND, HPEN, etc are NOT OS Handles. like HWND_DESKTOP. like HANDLEPTR_NULL. This is a WINAPI void* ha...
Definition: cOSHandle.h:23
UINT32 COLORREF
ABGR (high to low bits)
Definition: cVariantData.h:21
UINT DLGID_t
old window format this was a WORD, EX format this is UINT32.
Definition: cResDialog.h:68
int StrLen_t
the length of a string in chars (bytes for UTF8, wchar_t for UNICODE). or offset in characters....
Definition: StrConst.h:32
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22
@ CP_ACP
default to ANSI code page. All the _WIN32 A suffix functions.
Definition: StrChar.h:34
char GChar_t
My version of TCHAR, _TCHAR.
Definition: StrConst.h:26
cStringT< GChar_t > cString
Definition: cString.h:636
static void Zero(void *pData, size_t nSizeBlock) noexcept
Definition: cMem.h:100