?? afxctl.h
字號:
BOOL GetPropRadio(LPCTSTR pszPropName, int* pValue);
BOOL SetPropIndex(LPCTSTR pszPropName, int Value);
BOOL GetPropIndex(LPCTSTR pszPropName, int* pValue);
CPtrArray m_arrayDDP; // pending DDP data
// Destructors
~COlePropertyPage();
protected:
LRESULT WindowProc(UINT msg, WPARAM wParam, LPARAM lParam);
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
BOOL PreTranslateMessage(LPMSG lpMsg);
virtual void OnFinalRelease();
void CleanupObjectArray();
static BOOL CALLBACK EnumChildProc(HWND hWnd, LPARAM lParam);
static BOOL CALLBACK EnumControls(HWND hWnd, LPARAM lParam);
private:
BOOL m_bDirty;
UINT m_idDlg;
UINT m_idCaption;
CString m_strPageName;
SIZE m_sizePage;
CString m_strDocString;
CString m_strHelpFile;
DWORD m_dwHelpContext;
LPPROPERTYPAGESITE m_pPageSite;
LPDISPATCH* m_ppDisp; // Array of IDispatch pointers, used to
// access the properties of each control
LPDWORD m_pAdvisors; // Array of connection tokens used by
// IConnecitonPoint::Advise/UnAdvise.
BOOL m_bPropsChanged; // IPropertyNotifySink::OnChanged has been
// called, but not acted upon yet.
ULONG m_nObjects; // Objects in m_ppDisp, m_ppDataObj, m_pAdvisors
BOOL m_bInitializing; // TRUE if the contents of the fields of
// the dialog box are being initialized
int m_nControls; // Number of fields on this property page
AFX_PPFIELDSTATUS* m_pStatus; // Array containing information on
// which fields are dirty
CDWordArray m_IDArray; // Array containing information on which
// controls to ignore when deciding if
// the apply button is to be enabled
HGLOBAL m_hDialog; // Handle of the dialog resource
#ifdef _DEBUG
protected:
BOOL m_bNonStandardSize;
#endif
protected:
// Generated message map functions
//{{AFX_MSG(COlePropertyPage)
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Interface Maps
public:
BEGIN_INTERFACE_PART(PropertyPage, IPropertyPage2)
INIT_INTERFACE_PART(COlePropertyPage, PropertyPage)
STDMETHOD(SetPageSite)(LPPROPERTYPAGESITE);
STDMETHOD(Activate)(HWND, LPCRECT, BOOL);
STDMETHOD(Deactivate)();
STDMETHOD(GetPageInfo)(LPPROPPAGEINFO);
STDMETHOD(SetObjects)(ULONG, LPUNKNOWN*);
STDMETHOD(Show)(UINT);
STDMETHOD(Move)(LPCRECT);
STDMETHOD(IsPageDirty)();
STDMETHOD(Apply)();
STDMETHOD(Help)(LPCOLESTR);
STDMETHOD(TranslateAccelerator)(LPMSG);
STDMETHOD(EditProperty)(DISPID);
END_INTERFACE_PART(PropertyPage)
BEGIN_INTERFACE_PART(PropNotifySink, IPropertyNotifySink)
INIT_INTERFACE_PART(COlePropertyPage, PropNotifySink)
STDMETHOD(OnRequestEdit)(DISPID);
STDMETHOD(OnChanged)(DISPID);
END_INTERFACE_PART(PropNotifySink)
DECLARE_INTERFACE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CStockPropPage
#ifdef _AFXDLL
class CStockPropPage : public COlePropertyPage
#else
class AFX_NOVTABLE CStockPropPage : public COlePropertyPage
#endif
{
DECLARE_DYNAMIC(CStockPropPage)
// Constructor
public:
CStockPropPage(UINT idDlg, UINT idCaption);
// Implementation
protected:
void FillPropnameList(REFGUID guid, int nIndirect, CComboBox& combo);
void OnSelchangePropname(CComboBox& combo);
BOOL OnEditProperty(DISPID dispid, CComboBox& combo);
LCID m_lcid;
CString m_strPropName;
int m_iPropName;
DECLARE_MESSAGE_MAP()
};
///////////////////////////////////////////////////////////////////////////////
// CColorButton: used by CColorPropPage
class CColorButton : public CButton
{
public:
CColorButton(void);
void SetFaceColor(COLORREF colFace);
COLORREF colGetFaceColor(void);
void SetState(BOOL fSelected);
static UINT idClicked;
protected:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
private:
BOOL m_fSelected;
COLORREF m_colFace;
};
/////////////////////////////////////////////////////////////////////////////
// CColorPropPage
class CColorPropPage : public CStockPropPage
{
DECLARE_DYNCREATE(CColorPropPage)
#ifdef _AFXDLL
DECLARE_OLECREATE_EX(CColorPropPage)
#endif
// Construction
public:
CColorPropPage(); // Constructor
// Dialog Data
//{{AFX_DATA(CColorPropPage)
enum { IDD = AFX_IDD_PROPPAGE_COLOR };
CComboBox m_SysColors;
CComboBox m_ColorProp;
//}}AFX_DATA
// Implementation
public:
enum { NBUTTONS = 16 };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog(void);
virtual BOOL OnEditProperty(DISPID dispid);
virtual void OnObjectsChanged();
void FillSysColors();
BOOL SetColorProp(CDataExchange* pDX, COLORREF color, LPCTSTR pszPropName);
BOOL GetColorProp(CDataExchange* pDX, COLORREF* pcolor, LPCTSTR pszPropName);
private:
CColorButton m_Buttons[NBUTTONS];
CColorButton *m_pSelectedButton;
void SetButton(CColorButton *Button);
// Generated message map functions
//{{AFX_MSG(CColorPropPage)
afx_msg void OnSelchangeColorprop();
afx_msg void OnSelect(void);
afx_msg void OnSelchangeSystemcolors();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
// Stores all the information about a font
typedef struct tagFONTOBJECT
{
CString strName;
CY cySize;
BOOL bBold;
BOOL bItalic;
BOOL bUnderline;
BOOL bStrikethrough;
short sWeight;
} FONTOBJECT;
// Merge objects are used when trying to consolidate multiple font properties.
// If the characteristics of these multiple properties differ then this is
// represented in the merge object.
typedef struct tagMERGEOBJECT
{
BOOL bNameOK;
BOOL bSizeOK;
BOOL bStyleOK;
BOOL bUnderlineOK;
BOOL bStrikethroughOK;
} MERGEOBJECT;
/////////////////////////////////////////////////////////////////////////////
// CSizeComboBox window
class CSizeComboBox : public CComboBox
{
// Operations
public:
int AddSize(int PointSize, LONG lfHeight);
void GetPointSize(CY& cy);
LONG GetHeight(int sel=-1);
void UpdateLogFont( LPLOGFONT lpLF, int sel=-1 );
};
/////////////////////////////////////////////////////////////////////////////
// CFontComboBox window
struct FONTITEM_PPG
{
DWORD dwFontType;
LOGFONT lf;
};
class CFontComboBox : public CComboBox
{
// Construction
public:
CFontComboBox();
virtual ~CFontComboBox();
// Operations
public:
int AddFont(LOGFONT *, DWORD);
CString GetCurrentName();
FONTITEM_PPG* GetFontItem(int sel=-1);
LPLOGFONT GetLogFont(int sel=-1);
DWORD GetFontType(int sel=-1);
// Implementation
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
virtual void DeleteItem(LPDELETEITEMSTRUCT lpDIS);
protected:
CBitmap m_bmpTrueType;
CBitmap m_bmpMask;
};
///////////////////////////////////////////////////////////////////////////
// CFontPropPage class
class CFontPropPage : public CStockPropPage
{
DECLARE_DYNCREATE(CFontPropPage)
#ifdef _AFXDLL
DECLARE_OLECREATE_EX(CFontPropPage)
#endif
public:
CFontPropPage();
// Dialog Data
//{{AFX_DATA(CFontPropPage)
enum { IDD = AFX_IDD_PROPPAGE_FONT };
CComboBox m_FontProp;
CStatic m_SampleBox;
CComboBox m_FontStyles;
CSizeComboBox m_FontSizes;
CFontComboBox m_FontNames;
//}}AFX_DATA
// Attributes
protected:
int nPixelsY;
CFont SampleFont;
DWORD m_nCurrentStyle;
DWORD m_nActualStyle;
DWORD m_nStyles;
BOOL m_bStrikeOut;
BOOL m_bUnderline;
CString m_strFontSize;
// Implementation
protected:
void FillFacenameList();
void FillSizeList();
virtual void DoDataExchange(CDataExchange* pDX);
virtual void OnPaint();
virtual BOOL OnEditProperty(DISPID dispid);
virtual void OnObjectsChanged();
void UpdateSampleFont();
void SelectFontFromList(CString strFaceName, MERGEOBJECT* pmobj);
//{{AFX_MSG(CFontPropPage)
virtual BOOL OnInitDialog();
afx_msg void OnEditupdateFontnames();
afx_msg void OnEditupdateFontsizes();
afx_msg void OnSelchangeFontnames();
afx_msg void OnSelchangeFontsizes();
afx_msg void OnSelchangeFontstyles();
afx_msg void OnEditchangeFontstyles();
afx_msg void OnStrikeout();
afx_msg void OnUnderline();
afx_msg void OnSelchangeFontprop();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
static int CALLBACK EnumFontFamiliesCallBack(ENUMLOGFONT* lpelf, NEWTEXTMETRIC* lpntm, int FontType, LPARAM lParam);
static int CALLBACK EnumFontFamiliesCallBack2(ENUMLOGFONT* lpelf, NEWTEXTMETRIC* lpntm, int FontType, LPARAM lParam);
BOOL SetFontProps(CDataExchange* pDX, FONTOBJECT fobj, LPCTSTR pszPropName);
BOOL GetFontProps(CDataExchange* pDX, FONTOBJECT* pfobj, LPCTSTR pszPropName, MERGEOBJECT* pmobj);
};
////////////////////////////////////////////////////////////////////////////
// CPicturePropPage
class CPicturePropPage : public CStockPropPage
{
DECLARE_DYNCREATE(CPicturePropPage)
#ifdef _AFXDLL
DECLARE_OLECREATE_EX(CPicturePropPage)
#endif
// Construction
public:
CPicturePropPage(); // standard constructor
~CPicturePropPage();
// Dialog Data
//{{AFX_DATA(CPicturePropPage)
enum { IDD = AFX_IDD_PROPPAGE_PICTURE };
CComboBox m_PropName;
CStatic m_Static;
//}}AFX_DATA
// Implementation
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog(void);
virtual BOOL OnEditProperty(DISPID dispid);
virtual void OnObjectsChanged();
BOOL SetPictureProp(CDataExchange* pDX, LPPICTUREDISP pPictDisp, LPCTSTR pszPropName);
BOOL GetPictureProp(CDataExchange* pDX, LPPICTUREDISP* ppPictDisp, LPCTSTR pszPropName);
void ChangePicture(LPPICTURE pPict);
LPPICTUREDISP m_pPictDisp;
// Generated message map functions
protected:
//{{AFX_MSG(CPicturePropPage)
afx_msg void OnPaint();
afx_msg void OnBrowse();
afx_msg void OnClear();
afx_msg void OnSelchangePictProp();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// Property Page Dialog Data Exchange routines
// simple text operations
void AFXAPI DDP_Text(CDataExchange*pDX, int id, BYTE& member, LPCTSTR pszPropName);
void AFXAPI DDP_Text(CDataExchange*pDX, int id, short& member, LPCTSTR pszPropName);
void AFXAPI DDP_Text(CDataExchange*pDX, int id, int& member, LPCTSTR pszPropName);
void AFXAPI DDP_Text(CDataExchange*pDX, int id, UINT& member, LPCTSTR pszPropName);
void AFXAPI DDP_Text(CDataExchange*pDX, int id, long& member, LPCTSTR pszPropName);
void AFXAPI DDP_Text(CDataExchange*pDX, int id, DWORD& member, LPCTST
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -