polyprop.h

来自「几个关于网络编程的程序」· C头文件 代码 · 共 74 行

H
74
字号
// PolyProp.h : Declaration of the CPolyProp

#ifndef __POLYPROP_H_
#define __POLYPROP_H_

#include "Polygon.h"        // definition of IPolyCtl
#include "resource.h"       // main symbols

EXTERN_C const CLSID CLSID_PolyProp;

/////////////////////////////////////////////////////////////////////////////
// CPolyProp
class ATL_NO_VTABLE CPolyProp :
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CPolyProp, &CLSID_PolyProp>,
	public IPropertyPageImpl<CPolyProp>,
	public CDialogImpl<CPolyProp>
{
public:
	CPolyProp()
	{
		m_dwTitleID = IDS_TITLEPolyProp;
		m_dwHelpFileID = IDS_HELPFILEPolyProp;
		m_dwDocStringID = IDS_DOCSTRINGPolyProp;
	}

	enum {IDD = IDD_POLYPROP};

DECLARE_REGISTRY_RESOURCEID(IDR_POLYPROP)

BEGIN_COM_MAP(CPolyProp)
	COM_INTERFACE_ENTRY(IPropertyPage)
END_COM_MAP()

BEGIN_MSG_MAP(CPolyProp)
	COMMAND_HANDLER(IDC_SIDES, EN_CHANGE, OnChangeSides)
	CHAIN_MSG_MAP(IPropertyPageImpl<CPolyProp>)
END_MSG_MAP()
// Handler prototypes:
//  LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
//  LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
//  LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);

STDMETHOD(Apply)(void)
{
	USES_CONVERSION;
	ATLTRACE(_T("CPolyProp::Apply\n"));

	for (UINT i = 0; i < m_nObjects; i++)
	{
		CComQIPtr<IPolyCtl, &IID_IPolyCtl> pPoly(m_ppUnk[i]);
		short nSides = (short)GetDlgItemInt(IDC_SIDES);
		if FAILED(pPoly->put_Sides(nSides))
		{
			CComPtr<IErrorInfo> pError;
			CComBSTR         strError;
			GetErrorInfo(0, &pError);
			pError->GetDescription(&strError);
			MessageBox(OLE2T(strError), _T("Error"), MB_ICONEXCLAMATION);
			return E_FAIL;
			}
	}
	m_bDirty = FALSE;
	return S_OK;
}
	LRESULT OnChangeSides(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
	{
		SetDirty(TRUE);
		return 0;
	}
};

#endif //__POLYPROP_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?