atlsam.cpp

来自「专题讲座二:内容包括ActiveX控件介绍、利用MFC开发ActiveX控件、 」· C++ 代码 · 共 47 行

CPP
47
字号
// ATLSam.cpp : Implementation of CATLSam
#include "stdafx.h"
#include "sam_2.h"
#include "ATLSam.h"

/////////////////////////////////////////////////////////////////////////////
// CATLSam

STDMETHODIMP CATLSam::InterfaceSupportsErrorInfo(REFIID riid)
{
	static const IID* arr[] = 
	{
		&IID_IATLSam,
	};
	for (int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
	{
		if (InlineIsEqualGUID(*arr[i],riid))
			return S_OK;
	}
	return S_FALSE;
}

HRESULT CATLSam::OnDraw(ATL_DRAWINFO& di)
{
	RECT& rc = *(RECT*)di.prcBounds;
	Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
	DrawText(di.hdcDraw, _T(m_pszCaption), -1, &rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
	return S_OK;
}

STDMETHODIMP CATLSam::SetCaption(BSTR pszCaption)
{
	USES_CONVERSION;
	LPTSTR pTemp=W2A(pszCaption);
	delete m_pszCaption;
	m_pszCaption = new char[strlen(pTemp)+1];
	strcpy(m_pszCaption,pTemp);
	Invalidate();
	return S_OK;
}

STDMETHODIMP CATLSam::GetCaptionLength(long *lLen)
{
	*lLen=strlen(m_pszCaption);
	return S_OK;
}

⌨️ 快捷键说明

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