atldemoprop.h
来自「VC.net 的一些有用的技巧」· C头文件 代码 · 共 81 行
H
81 行
// ATLDemoProp.h : CATLDemoProp 的声明
#pragma once
#include "resource.h" // 主符号
#include "ATLDemo.h"
// CATLDemoProp
class ATL_NO_VTABLE CATLDemoProp :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CATLDemoProp, &CLSID_ATLDemoProp>,
public IPropertyPageImpl<CATLDemoProp>,
public CDialogImpl<CATLDemoProp>
{
public:
CATLDemoProp()
{
m_dwTitleID = IDS_TITLEATLDemoProp;
m_dwHelpFileID = IDS_HELPFILEATLDemoProp;
m_dwDocStringID = IDS_DOCSTRINGATLDemoProp;
}
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
enum {IDD = IDD_ATLDEMOPROP};
DECLARE_REGISTRY_RESOURCEID(IDR_ATLDEMOPROP)
BEGIN_COM_MAP(CATLDemoProp)
COM_INTERFACE_ENTRY(IPropertyPage)
END_COM_MAP()
BEGIN_MSG_MAP(CATLDemoProp)
COMMAND_HANDLER(IDC_SIDES, EN_CHANGE, OnEnChangeSides)
CHAIN_MSG_MAP(IPropertyPageImpl<CATLDemoProp>)
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("CATLDemoProp::Apply\n"));
for (UINT i = 0; i < m_nObjects; i++)
{
CComQIPtr<IMyATLCtrl, &IID_IMyATLCtrl> 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 OnEnChangeSides(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
};
OBJECT_ENTRY_AUTO(__uuidof(ATLDemoProp), CATLDemoProp)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?