📄 bcgpproplist.h
字号:
#if !defined(AFX_BCGPPROPLIST_H__F6054FED_0317_4829_B7BF_4EBBDC27DF01__INCLUDED_)
#define AFX_BCGPPROPLIST_H__F6054FED_0317_4829_B7BF_4EBBDC27DF01__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//*******************************************************************************
// COPYRIGHT NOTES
// ---------------
// This is a part of the BCGControlBar Library
// Copyright (C) 1998-2000 BCGSoft Ltd.
// All rights reserved.
//
// This source code can be used, distributed or modified
// only under terms and conditions
// of the accompanying license agreement.
//*******************************************************************************
//
// BCGPPropList.h : header file
//
#ifndef __AFXTEMPL_H__
#include "afxtempl.h"
#endif
#include "comdef.h"
#include "BCGCBPro.h"
#include "ColorPopup.h"
#include "BCGPHeaderCtrl.h"
#include "BCGPDateTimeCtrl.h"
/////////////////////////////////////////////////////////////////////////////
// CBCGPProp object
class BCGCBPRODLLEXPORT CBCGPProp : public CObject
{
DECLARE_DYNAMIC(CBCGPProp)
friend class CBCGPPropList;
// Construction
public:
// Group constructor
CBCGPProp(const CString& strGroupName, DWORD dwData = 0);
// Simple property
CBCGPProp(const CString& strName, const _variant_t& varValue,
LPCTSTR lpszDescr = NULL, DWORD dwData = 0,
LPCTSTR lpszEditMask = NULL, LPCTSTR lpszEditTemplate = NULL,
LPCTSTR lpszValidChars = NULL);
virtual ~CBCGPProp();
enum ClickArea
{
ClickExpandBox,
ClickName,
ClickValue
};
// Operations:
public:
int GetExpandedSubItems () const;
BOOL AddSubItem (CBCGPProp* pProp);
BOOL AddOption (LPCTSTR lpszOption);
void RemoveAllOptions ();
CBCGPProp* HitTest (CPoint point, CBCGPProp::ClickArea* pnArea = NULL);
void Expand (BOOL bExpand = TRUE);
void Redraw ();
void EnableSpinControl (BOOL bEnable = TRUE, int nMin = 0, int nMax = 0);
protected:
void Init ();
void SetFlags ();
void SetOwnerList (CBCGPPropList* pWndList);
void Repos (int& y);
void AddTerminalProp (CList<CBCGPProp*, CBCGPProp*>& lstProps);
BOOL IsSubItem (CBCGPProp* pProp) const;
CBCGPProp* FindSubItemByData (DWORD dwData) const;
// Overrides
public:
virtual void OnDrawName (CDC* pDC, CRect rect);
virtual void OnDrawValue (CDC* pDC, CRect rect);
virtual void OnDrawExpandBox (CDC* pDC, CRect rectExpand);
virtual void OnDrawButton (CDC* pDC, CRect rectButton);
virtual CString FormatProperty ();
virtual BOOL OnUpdateValue ();
virtual BOOL OnEdit (LPPOINT lptClick);
virtual CWnd* CreateInPlaceEdit (CRect rectEdit, BOOL& bDefaultFormat);
virtual CSpinButtonCtrl* CreateSpinControl (CRect rectSpin);
virtual BOOL OnEndEdit ();
virtual void OnClickButton (CPoint point);
virtual BOOL OnDblClick (CPoint point);
virtual void OnSelectCombo ();
virtual void OnCloseCombo();
virtual BOOL OnSetCursor () const;
virtual BOOL PushChar (UINT nChar);
virtual CString GetNameTooltip ();
virtual CString GetValueTooltip ();
virtual void OnClickName (CPoint /*point*/) {}
virtual void OnRClickName (CPoint /*point*/) {}
virtual void OnRClickValue (CPoint /*point*/, BOOL /*bSelChanged*/) {}
virtual void OnPosSizeChanged (CRect /*rectOld*/) {}
virtual void OnSetSelection (CBCGPProp* /*pOldSel*/) {}
virtual void OnKillSelection (CBCGPProp* /*pNewSel*/) {}
protected:
virtual HBRUSH OnCtlColor(CDC* pDC, UINT nCtlColor);
virtual CComboBox* CreateCombo (CWnd* pWndParent, CRect rect);
virtual void OnDestroyWindow ();
virtual BOOL OnKillFocus (CWnd* /*pNewWnd*/)
{
return TRUE;
}
virtual BOOL HasButton () const;
virtual BOOL IsProcessFirstClick () const
{
return TRUE;
}
virtual BOOL HasValueField () const
{
return TRUE;
}
// Attributes
public:
LPCTSTR GetName () const
{
return m_strName;
}
void SetName (LPCTSTR lpszName, BOOL bRedraw = TRUE);
const _variant_t& GetValue () const
{
return m_varValue;
}
void SetValue (const _variant_t& varValue);
const CString& GetDescription () const
{
return m_strDescr;
}
void SetDescription (const CString& strDescr)
{
m_strDescr = strDescr;
}
DWORD GetData () const
{
return m_dwData;
}
void SetData (DWORD dwData)
{
m_dwData = dwData;
}
BOOL IsGroup () const
{
return m_bGroup;
}
BOOL IsExpanded () const
{
return m_bExpanded;
}
BOOL IsParentExpanded () const;
BOOL IsSelected () const;
int GetHierarchyLevel () const;
void Enable (BOOL bEnable = TRUE);
BOOL IsEnabled () const
{
return m_bEnabled;
}
void AllowEdit (BOOL bAllow = TRUE)
{
ASSERT (m_varValue.vt != VT_BOOL);
m_bAllowEdit = bAllow;
}
BOOL IsAllowEdit () const
{
return m_bAllowEdit;
}
CRect GetRect () const
{
return m_Rect;
}
int GetSubItemsCount () const
{
return m_lstSubItems.GetCount ();
}
CBCGPProp* GetSubItem (int nIndex) const;
CBCGPProp* GetParent () const
{
return m_pParent;
}
BOOL IsInPlaceEditing () const
{
return m_bInPlaceEdit;
}
public:
// Data formats
static CString m_strFormatShort;
static CString m_strFormatLong;
static CString m_strFormatUShort;
static CString m_strFormatULong;
static CString m_strFormatFloat;
static CString m_strFormatDouble;
protected:
CString m_strName; // Property name
_variant_t m_varValue; // Property value
CBCGPPropList* m_pWndList; // Pointer to the PropertyList window
DWORD m_dwData; // User-defined data
CString m_strDescr; // Property description
CString m_strEditMask; // Property edit mask (see CBCGPMaskEdit for description)
CString m_strEditTempl; // Property edit template (see CBCGPMaskEdit for description)
CString m_strValidChars;// Property edit valid chars (see CBCGPMaskEdit for description)
CStringList m_lstOptions; // List of combobox items
BOOL m_bInPlaceEdit; // Is in InPalce editing mode
CWnd* m_pWndInPlace; // Pointer to InPlace editing window
CComboBox* m_pWndCombo; // Pointer to combbox
CSpinButtonCtrl* m_pWndSpin; // Pointer to spin button
CRect m_Rect; // Property rectangle (in the prop.list coordinates)
CRect m_rectButton; // Drop down/open button rectangle
BOOL m_bButtonIsDown;// Is button pressed?
BOOL m_bGroup; // Is property group?
BOOL m_bExpanded; // Is property expanded (for groups only)
BOOL m_bEnabled; // Is propperty enabled?
BOOL m_bAllowEdit; // Is property editable?
DWORD m_dwFlags; // Property flags
CBCGPProp* m_pParent; // Parent property (NULL for top-level properties)
CList<CBCGPProp*, CBCGPProp*> m_lstSubItems; // Sub-properies list
BOOL m_bNameIsTrancated;
BOOL m_bValueIsTrancated;
int m_nMinValue;
int m_nMaxValue;
};
/////////////////////////////////////////////////////////////////////////////
// CBCGPColorProp object
class BCGCBPRODLLEXPORT CBCGPColorProp : public CBCGPProp
{
friend class CBCGPPropList;
DECLARE_DYNAMIC(CBCGPColorProp)
// Construction
public:
CBCGPColorProp(const CString& strName, const COLORREF& color,
CPalette* pPalette = NULL, LPCTSTR lpszDescr = NULL, DWORD dwData = 0);
virtual ~CBCGPColorProp();
// Overrides
public:
virtual void OnDrawValue (CDC* pDC, CRect rect);
virtual void OnClickButton (CPoint point);
virtual BOOL OnEdit (LPPOINT lptClick);
virtual BOOL OnUpdateValue ();
virtual CString FormatProperty ();
protected:
virtual BOOL OnKillFocus (CWnd* pNewWnd)
{
return pNewWnd->GetSafeHwnd () != m_pPopup->GetSafeHwnd ();
}
// Attributes
public:
COLORREF GetColor () const
{
return m_Color;
}
void SetColor (COLORREF color);
// Color popup attributes:
void EnableAutomaticButton (LPCTSTR lpszLabel, COLORREF colorAutomatic, BOOL bEnable = TRUE);
void EnableOtherButton (LPCTSTR lpszLabel, BOOL bAltColorDlg = TRUE, BOOL bEnable = TRUE);
void SetColumnsNumber (int nColumnsNumber);
// Attributes
protected:
COLORREF m_Color; // Color value
COLORREF m_ColorAutomatic; // Automatic (default) color value
CString m_strAutoColor; // Atomatic color label
BOOL m_bStdColorDlg; // Use standard Windows color dialog
CString m_strOtherColor; // Alternative color label
CColorPopup* m_pPopup;
CArray<COLORREF, COLORREF> m_Colors;
int m_nColumnsNumber; // Number of columns in dropped-down colors list
};
/////////////////////////////////////////////////////////////////////////////
// CBCGPFileProp object
class BCGCBPRODLLEXPORT CBCGPFileProp : public CBCGPProp
{
DECLARE_DYNAMIC(CBCGPFileProp)
// Construction
public:
CBCGPFileProp(const CString& strName, const CString& strFolderName, DWORD dwData = 0, LPCTSTR lpszDescr = NULL);
CBCGPFileProp(const CString& strName, BOOL bOpenFileDialog, const CString& strFileName,
LPCTSTR lpszDefExt = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
LPCTSTR lpszDescr = NULL, DWORD dwData = 0);
virtual ~CBCGPFileProp();
// Overrides
public:
virtual void OnClickButton (CPoint point);
// Attributes
protected:
BOOL m_bIsFolder;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -