?? methodptr.h
字號(hào):
// MFCMethodPointer.h: interface for the MFCMethodPointer class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MFCMETHODPOINTER_H__67CE3765_BEB6_11D2_A18B_00609784F50B__INCLUDED_)
#define AFX_MFCMETHODPOINTER_H__67CE3765_BEB6_11D2_A18B_00609784F50B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "MethodPtrBase.h"
// r = return type
// o = object definition
// m = method
#define METHOD(r,o,m) (r (o::*)() )(&o::m)
// O = object definition
// R = return type
template <class O, class R>
class CMethodPtr : public CMethodPtrBase<R>
{
typedef R (O::*PMETHOD)();
typedef R (O::*PMETHOD1)(LPVOID);
typedef R (O::*PMETHOD2)(LPVOID, LPVOID);
public:
CMethodPtr(O* pObject, PMETHOD pMethod) : m_pObject( pObject ), m_pMethod( pMethod ) {};
// Member Variables
private:
O* m_pObject; // pointer to an object
PMETHOD m_pMethod; // pointer to the method
//Implementation
public:
void SetObject( O* pObject ) { m_pObject = pObject; }
void SetMethod( PMETHOD pMethod ) { m_pMethod = pMethod; }
// 0 args
virtual R CallMethod()
{
return (m_pObject->*m_pMethod)();
}
// 1 arg
virtual R CallMethod(LPVOID arg1)
{
return (m_pObject->*(PMETHOD1)m_pMethod)(arg1);
}
// 2 args
virtual R CallMethod(LPVOID arg1, LPVOID arg2)
{
return (m_pObject->*(PMETHOD2)m_pMethod)(arg1, arg2);
}
};
#endif // !defined(AFX_MFCMETHODPOINTER_H__67CE3765_BEB6_11D2_A18B_00609784F50B__INCLUDED_)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -