// Microsoft Foundation Classes C++ library. // Copyright (C) 1992 Microsoft Corporation, // All rights reserved. // This source code is only intended as a supplement to the // Microsoft Foundation Classes Reference and Microsoft // QuickHelp and/or WinHelp documentation provided with the library. // See these sources for detailed information regarding the // Microsoft Foundation Classes product. #ifndef __AFXCMN_H__ #define __AFXCMN_H__ #ifndef __AFXWIN_H__ #include #endif #ifndef _INC_COMMCTRL #include #endif #ifndef IMAGE_BITMAP #define IMAGE_BITMAP 0 #endif #ifdef _AFX_PACKING #pragma pack(push, _AFX_PACKING) #endif #ifndef _AFX_NOFORCE_LIBS #ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // Win32 libraries #ifdef _AFXDLL #ifdef _UNICODE #ifdef _DEBUG #pragma comment(lib, "eafxccud.lib") #else #pragma comment(lib, "eafxccu.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "eafxccd.lib") #else #pragma comment(lib, "eafxcc.lib") #endif #endif #else #ifdef _UNICODE #ifdef _DEBUG #pragma comment(lib, "nafxccud.lib") #else #pragma comment(lib, "nafxccu.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "nafxccd.lib") #else #pragma comment(lib, "nafxcc.lib") #endif #endif #endif #pragma comment(lib, "comctl32.lib") #else //!_MAC ///////////////////////////////////////////////////////////////////////////// // Mac libraries #endif //_MAC #endif //!_AFX_NOFORCE_LIBS ///////////////////////////////////////////////////////////////////////////// // AFXCMN - MFC COMCTL32 Control Classes // Classes declared in this file //CObject class CImageList; //CCmdTarget; //CWnd class CListCtrl; class CTreeCtrl; class CSpinButtonCtrl; class CHeaderCtrl; class CSliderCtrl; class CProgressCtrl; class CHotKeyCtrl; class CToolTipCtrl; class CTabCtrl; class CAnimateCtrl; class CToolBarCtrl; class CStatusBarCtrl; #undef AFX_DATA #define AFX_DATA AFX_CORE_DATA ///////////////////////////////////////////////////////////////////////////// // CStatusBarCtrl class CStatusBarCtrl : public CWnd { DECLARE_DYNAMIC(CStatusBarCtrl) // Constructors public: CStatusBarCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes BOOL SetText(LPCTSTR lpszText, int nPane, int nType); int GetText(LPCTSTR lpszText, int nPane, int* pType = NULL); int GetTextLength(int nPane, int* pType = NULL); BOOL SetParts(int nParts, int* pWidths); BOOL SetBorders(int* pBorders); BOOL SetBorders(int nHorz, int nVert, int nSpacing); int GetParts(int nParts, int* pParts); BOOL GetBorders(int* pBorders); BOOL GetBorders(int& nHorz, int& nVert, int& nSpacing); void SetMinHeight(int nMin); BOOL SetSimple(BOOL bSimple = TRUE); BOOL GetRect(int nPane, LPRECT lpRect); // Overridables virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); // Implementation public: virtual ~CStatusBarCtrl(); protected: virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); }; ///////////////////////////////////////////////////////////////////////////// // CListCtrl class CListCtrl : public CWnd { DECLARE_DYNAMIC(CListCtrl) // Constructors public: CListCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes COLORREF GetBkColor(); BOOL SetBkColor(COLORREF cr); CImageList* GetImageList(int nImageList); CImageList* SetImageList(CImageList* pImageList, int nImageList); int GetItemCount(); BOOL GetItem(LV_ITEM* pItem); BOOL SetItem(const LV_ITEM* pItem); UINT GetCallbackMask(); BOOL SetCallbackMask(UINT nMask); int GetNextItem(int nItem, int nFlags); BOOL GetItemRect(int nItem, LPRECT lpRect, UINT nCode); BOOL SetItemPosition(int nItem, POINT pt); BOOL GetItemPosition(int nItem, LPPOINT lpPoint); int GetStringWidth(LPCTSTR lpsz); CEdit* GetEditControl(); BOOL GetColumn(int nCol, LV_COLUMN* pColumn); BOOL SetColumn(int nCol, const LV_COLUMN* pColumn); int GetColumnWidth(int nCol); BOOL SetColumnWidth(int nCol, int cx); BOOL GetViewRect(LPRECT lpRect); COLORREF GetTextColor(); BOOL SetTextColor(COLORREF cr); COLORREF GetTextBkColor(); BOOL SetTextBkColor(COLORREF cr); int GetTopIndex(); int GetCountPerPage(); BOOL GetOrigin(LPPOINT lpPoint); BOOL SetItemState(int nItem, LV_ITEM* pItem); BOOL SetItemState(int nItem, UINT nState, UINT nMask); UINT GetItemState(int nItem, UINT nMask); int GetItemText(int nItem, int nSubItem, LPTSTR lpszText, int nLen); BOOL SetItemText(int nItem, int nSubItem, LPTSTR lpszText); void SetItemCount(int nItems); UINT GetSelectedCount(); // Operations int InsertItem(const LV_ITEM* pItem); BOOL DeleteItem(int nItem); BOOL DeleteAllItems(); int FindItem(int nStart, LV_FINDINFO* pFindInfo); int HitTest(LV_HITTESTINFO* pHitTestInfo); int HitTest(CPoint pt, UINT* pFlags); BOOL EnsureVisible(int nItem, BOOL bPartialOK); BOOL Scroll(CSize size); BOOL RedrawItems(int nFirst, int nLast); BOOL Arrange(UINT nCode); CEdit* EditLabel(int nItem); int InsertColumn(int nCol, const LV_COLUMN* pColumn); BOOL DeleteColumn(int nCol); CImageList* CreateDragImage(int nItem, LPPOINT lpPoint); BOOL Update(int nItem); BOOL SortItems(PFNLVCOMPARE pfnCompare, DWORD dwData); // Overridables virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); // Implementation public: virtual ~CListCtrl(); protected: void RemoveImageList(int nImageList); virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); protected: //{{AFX_MSG(CListCtrl) afx_msg void OnDestroy(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// // CTreeCtrl class CTreeCtrl : public CWnd { DECLARE_DYNAMIC(CTreeCtrl) // Constructors public: CTreeCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes BOOL GetItemRect(HTREEITEM hItem, LPRECT lpRect, BOOL bTextOnly); UINT GetCount(); UINT GetIndent(); BOOL SetIndent(UINT nIndent); CImageList* GetImageList(UINT nImage); CImageList* SetImageList(UINT nImage, CImageList* pImageList); HTREEITEM GetNextItem(HTREEITEM hItem, UINT nCode); HTREEITEM GetChildItem(HTREEITEM hItem); HTREEITEM GetNextSiblingItem(HTREEITEM hItem); HTREEITEM GetPrevSiblingItem(HTREEITEM hItem); HTREEITEM GetParentItem(HTREEITEM hItem); HTREEITEM GetFirstVisibleItem(); HTREEITEM GetNextVisibleItem(HTREEITEM hItem); HTREEITEM GetPrevVisibleItem(HTREEITEM hItem); HTREEITEM GetSelectedItem(); HTREEITEM GetDropHilightItem(); HTREEITEM GetRootItem(); BOOL GetItem(TV_ITEM* pItem); BOOL SetItem(TV_ITEM* pItem); CEdit* GetEditControl(); UINT GetVisibleCount(); // Operations HTREEITEM InsertItem(LPTV_INSERTSTRUCT lpInsertStruct); BOOL DeleteItem(HTREEITEM hItem); BOOL DeleteAllItems(); BOOL Expand(HTREEITEM hItem, UINT nCode); HTREEITEM Select(HTREEITEM hItem, UINT nCode); HTREEITEM SelectItem(HTREEITEM hItem); HTREEITEM SelectDropTarget(HTREEITEM hItem); CEdit* EditLabel(HTREEITEM hItem); HTREEITEM HitTest(CPoint pt, UINT* pFlags); HTREEITEM HitTest(TV_HITTESTINFO* pHitTestInfo); CImageList* CreateDragImage(HTREEITEM hItem); BOOL SortChildren(HTREEITEM hItem, BOOL bRecurse); BOOL EnsureVisible(HTREEITEM hItem); BOOL SortChildrenCB(LPTV_SORTCB pSort, BOOL bRecurse); // Implementation protected: void RemoveImageList(int nImageList); public: virtual ~CTreeCtrl(); //{{AFX_MSG(CTreeCtrl) afx_msg void OnDestroy(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// // CSpinButtonCtrl class CSpinButtonCtrl : public CWnd { DECLARE_DYNAMIC(CSpinButtonCtrl) // Constructors public: CSpinButtonCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes BOOL SetAccel(int nAccel, UDACCEL* pAccel); UINT GetAccel(int nAccel, UDACCEL* pAccel); int SetBase(int nBase); UINT GetBase(); CWnd* SetBuddy(CWnd* pWndBuddy); CWnd* GetBuddy(); int SetPos(int nPos); int GetPos(); void SetRange(int nLower, int nUpper); DWORD GetRange(); void GetRange(int &lower, int& upper); // Implementation public: virtual ~CSpinButtonCtrl(); }; ///////////////////////////////////////////////////////////////////////////// // CSliderCtrl class CSliderCtrl : public CWnd { DECLARE_DYNAMIC(CSliderCtrl) // Constructors public: CSliderCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes int GetLineSize(); int SetLineSize(int nSize); int GetPageSize(); int SetPageSize(int nSize); int GetRangeMax(); int GetRangeMin(); void GetRange(int& nMin, int& nMax); void SetRangeMin(int nMin, BOOL bRedraw = FALSE); void SetRangeMax(int nMax, BOOL bRedraw = FALSE); void SetRange(int nMin, int nMax, BOOL bRedraw = FALSE); void GetSelection(int& nMin, int& nMax); void SetSelection(int nMin, int nMax); void GetChannelRect(LPRECT lprc); void GetThumbRect(LPRECT lprc); int GetPos(); void SetPos(int nPos); UINT GetNumTics(); DWORD* GetTicArray(); int GetTic(int nTic); int GetTicPos(int nTic); BOOL SetTic(int nTic); void SetTicFreq(int nFreq); // Operations void ClearSel(BOOL bRedraw = FALSE); void VerifyPos(); void ClearTics(BOOL bRedraw = FALSE); // Implementation public: virtual ~CSliderCtrl(); }; ///////////////////////////////////////////////////////////////////////////// // CProgressCtrl class CProgressCtrl : public CWnd { DECLARE_DYNAMIC(CProgressCtrl) // Constructors public: CProgressCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes void SetRange(int nLower, int nUpper); int SetPos(int nPos); int OffsetPos(int nPos); int SetStep(int nStep); // Operations int StepIt(); // Implementation public: virtual ~CProgressCtrl(); }; ///////////////////////////////////////////////////////////////////////////// // CHeaderCtrl class CHeaderCtrl : public CWnd { DECLARE_DYNAMIC(CHeaderCtrl) // Constructors public: CHeaderCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes int GetItemCount(); BOOL GetItem(int nPos, HD_ITEM* pHeaderItem); BOOL SetItem(int nPos, HD_ITEM* pHeaderItem); // Operations int InsertItem(int nPos, HD_ITEM* phdi); BOOL DeleteItem(int nPos); BOOL Layout(HD_LAYOUT* pHeaderLayout); // Overridables virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); // Implementation public: virtual ~CHeaderCtrl(); protected: virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); }; ///////////////////////////////////////////////////////////////////////////// // CHotKeyCtrl class CHotKeyCtrl : public CWnd { DECLARE_DYNAMIC(CHotKeyCtrl) // Constructors public: CHotKeyCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes void SetHotKey(WORD wVirtualKeyCode, WORD wModifiers); DWORD GetHotKey(); void GetHotKey(WORD &wVirtualKeyCode, WORD &wModifiers); // Operations void SetRules(WORD wInvalidComb, WORD wModifiers); // Implementation public: virtual ~CHotKeyCtrl(); }; ///////////////////////////////////////////////////////////////////////////// // CToolTipCtrl class CToolTipCtrl : public CWnd { DECLARE_DYNAMIC(CToolTipCtrl) // Constructors public: CToolTipCtrl(); BOOL Create(CWnd* pParentWnd); // Attributes void GetText(CString& str, CWnd* pWnd, UINT nIDTool = 0); BOOL GetToolInfo(LPTOOLINFO lpToolInfo, CWnd* pWnd, UINT nIDTool = 0); void SetToolInfo(LPTOOLINFO lpToolInfo); void SetToolRect(CWnd* pWnd, UINT nIDTool, LPCRECT lpRect); int GetToolCount(); // Operations void Activate(BOOL bActivate); BOOL AddTool(CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool = NULL, UINT nIDTool = 0); BOOL AddTool(CWnd* pWnd, LPCTSTR lpszText = LPSTR_TEXTCALLBACK, LPCRECT lpRectTool = NULL, UINT nIDTool = 0); void DelTool(CWnd* pWnd, UINT nIDTool = 0); BOOL HitTest(CWnd* pWnd, CPoint pt, LPTOOLINFO lpToolInfo); void RelayEvent(LPMSG lpMsg); void SetDelayTime(UINT nDelay); void UpdateTipText(LPCTSTR lpszText, CWnd* pWnd, UINT nIDTool = 0); void UpdateTipText(UINT nIDText, CWnd* pWnd, UINT nIDTool = 0); // Implementation public: void FillInToolInfo(TOOLINFO& ti, CWnd* pWnd, UINT nIDTool); virtual ~CToolTipCtrl(); }; ///////////////////////////////////////////////////////////////////////////// // CTabCtrl class CTabCtrl : public CWnd { DECLARE_DYNAMIC(CTabCtrl) // Constructors public: CTabCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes COLORREF GetBkColor(); BOOL SetBkColor(COLORREF cr); CImageList* GetImageList(); CImageList* SetImageList(CImageList* pImageList); int GetItemCount(); BOOL GetItem(int nItem, TC_ITEM* pTabCtrlItem); BOOL SetItem(int nItem, TC_ITEM* pTabCtrlItem); BOOL GetItemRect(int nItem, LPRECT lpRect); int GetCurSel(); int SetCurSel(int nItem); CSize SetItemSize(CSize size); void SetPadding(CSize size); int GetRowCount(); CToolTipCtrl* GetTooltips(); void SetTooltips(CToolTipCtrl* pWndTip); int GetCurFocus(); // Operations BOOL InsertItem(int nItem, TC_ITEM* pTabCtrlItem); BOOL DeleteItem(int nItem); BOOL DeleteAllItems(); void AdjustRect(BOOL bLarger, LPRECT lpRect); void RemoveImage(int nImage); int HitTest(TC_HITTESTINFO* pHitTestInfo); // Overridables virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); // Implementation public: virtual ~CTabCtrl(); protected: virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); //{{AFX_MSG(CTabCtrl) afx_msg void OnDestroy(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// // CAnimateCtrl class CAnimateCtrl : public CWnd { DECLARE_DYNAMIC(CAnimateCtrl) // Constructors public: CAnimateCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Operations BOOL Open(LPCTSTR lpszFileName); BOOL Open(UINT nID); BOOL Play(UINT nFrom, UINT nTo, UINT nRep); BOOL Stop(); BOOL Close(); BOOL Seek(UINT nTo); // Implementation public: virtual ~CAnimateCtrl(); }; ///////////////////////////////////////////////////////////////////////////// // CImageList class CImageList : public CObject { DECLARE_DYNCREATE(CImageList) // Constructors public: CImageList(); BOOL Create(int cx, int cy, BOOL bMask, int nInitial, int nGrow); BOOL Create(UINT nBitmapID, int cx, int nGrow, COLORREF crMask); BOOL Create(LPCTSTR lpszBitmapID, int cx, int nGrow, COLORREF crMask); BOOL Create(CImageList& imagelist1, int nImage1, CImageList& imagelist2, int nImage2, int dx, int dy); // Attributes HIMAGELIST m_hImageList; // must be first data member HIMAGELIST GetSafeHandle() const; static CImageList* PASCAL FromHandle(HIMAGELIST hImageList); static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList); static void PASCAL DeleteTempMap(); BOOL Attach(HIMAGELIST hImageList); HIMAGELIST Detach(); int GetImageCount(); COLORREF SetBkColor(COLORREF cr); COLORREF GetBkColor(); BOOL GetImageInfo(int nImage, IMAGEINFO* pImageInfo); // Operations BOOL DeleteImageList(); int Add(CBitmap* pbmImage, CBitmap* pbmMask); int Add(CBitmap* pbmImage, COLORREF crMask); BOOL Remove(int nImage); BOOL Replace(int nImage, CBitmap* pbmImage, CBitmap* pbmMask); int Add(HICON hIcon); int Replace(int nImage, HICON hIcon); HICON ExtractIcon(int nImage); BOOL Draw(CDC* pDC, int nImage, POINT pt, UINT nStyle); BOOL SetOverlayImage(int nImage, int nOverlay); BOOL Read(CArchive* pArchive); BOOL Write(CArchive* pArchive); // Drag APIs BOOL BeginDrag(int nImage, CPoint ptHotSpot); static void EndDrag(); static BOOL DragMove(CPoint pt); BOOL SetDragCursorImage(int nDrag, CPoint ptHotSpot); static BOOL DragShowNolock(BOOL bShow); static CImageList* GetDragImage(LPPOINT lpPoint, LPPOINT lpPointHotSpot); static BOOL DragEnter(CWnd* pWndLock, CPoint point); static BOOL DragLeave(CWnd* pWndLock); // Implementation public: virtual ~CImageList(); #ifdef _DEBUG virtual void Dump(CDumpContext& dc) const; virtual void AssertValid() const; #endif }; ///////////////////////////////////////////////////////////////////////////// // CToolBarCtrl class CToolBarCtrl : public CWnd { DECLARE_DYNAMIC(CToolBarCtrl) // Construction public: CToolBarCtrl(); BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); // Attributes public: BOOL IsButtonEnabled(int nID); BOOL IsButtonChecked(int nID); BOOL IsButtonPressed(int nID); BOOL IsButtonHidden(int nID); BOOL IsButtonIndeterminate(int nID); BOOL SetState(int nID, UINT nState); int GetState(int nID); BOOL GetButton(int nIndex, LPTBBUTTON lpButton); int GetButtonCount(); BOOL GetItemRect(int nIndex, LPRECT lpRect); void SetButtonStructSize(int nSize); BOOL SetButtonSize(CSize size); BOOL SetBitmapSize(CSize size); CToolTipCtrl* GetToolTips(); void SetToolTips(CToolTipCtrl* pTip); void SetOwner(CWnd* pWnd); void SetRows(int nRows, BOOL bLarger, LPRECT lpRect); int GetRows(); BOOL SetCmdID(int nIndex, UINT nID); UINT GetBitmapFlags(); // Operations public: BOOL EnableButton(int nID, BOOL bEnable = TRUE); BOOL CheckButton(int nID, BOOL bCheck = TRUE); BOOL PressButton(int nID, BOOL bPress = TRUE); BOOL HideButton(int nID, BOOL bHide = TRUE); BOOL Indeterminate(int nID, BOOL bIndeterminate = TRUE); int AddBitmap(int nNumButtons, UINT nBitmapID); int AddBitmap(int nNumButtons, CBitmap* pBitmap); BOOL AddButtons(int nNumButtons, LPTBBUTTON lpButtons); BOOL InsertButton(int nIndex, LPTBBUTTON lpButton); BOOL DeleteButton(int nIndex); UINT CommandToIndex(UINT nID); void SaveState(HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName); void RestoreState(HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName); void Customize(); int AddString(UINT nStringID); int AddStrings(LPCTSTR lpszStrings); void AutoSize(); // Implementation public: virtual ~CToolBarCtrl(); protected: //{{AFX_MSG(CToolBarCtrl) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// // Inline function declarations #ifdef _AFX_PACKING #pragma pack(pop) #endif #ifdef _AFX_ENABLE_INLINES #define _AFXCMN_INLINE inline #include #endif #undef AFX_DATA #define AFX_DATA #endif //__AFXCMN_H__ /////////////////////////////////////////////////////////////////////////////