📄 ismsgmanager.h
字号:
// ISMsgManager.h: interface for the CISMsgManager class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ISMSGMANAGER_H__975F4620_557F_44FB_81FF_ECD5C55D9015__INCLUDED_)
#define AFX_ISMSGMANAGER_H__975F4620_557F_44FB_81FF_ECD5C55D9015__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afxtempl.h>
class CISMsgHandler
{
public:
CISMsgHandler(UINT uMsg, LPCTSTR szMsg) : m_uMsg(uMsg), m_sMsg(szMsg) {}
virtual ~CISMsgHandler() {}
virtual BOOL HandleMsg(const MSG* pMsg, CString& sMsg, CStringArray* pParams)
{
ASSERT (pMsg->message == m_uMsg);
sMsg = m_sMsg;
return TRUE;
}
static inline void AddParam(CStringArray& aParams, const char *fmt, ...)
{
static char gBuffer[1024];
ZeroMemory(gBuffer, 1024);
va_list marker;
va_start(marker, fmt);
vsprintf(gBuffer, fmt, marker);
va_end(marker);
aParams.Add(gBuffer);
}
protected:
UINT m_uMsg;
CString m_sMsg;
};
class CISMsgManager
{
public:
virtual ~CISMsgManager();
static BOOL HandleMsg(const MSG* pMsg, CString& sMsg, CStringArray* pParams = NULL);
protected:
static CISMsgManager& GetInstance() { static CISMsgManager isMsgMgr; return isMsgMgr; }
protected:
CISMsgManager();
BOOL AddHandler(UINT uMsg, CISMsgHandler* pMsgHandler);
CISMsgHandler* GetHandler(UINT uMsg);
void CreateMessageMap();
void DeleteMessageMap();
protected:
CMap<UINT, UINT, CISMsgHandler*, CISMsgHandler*&> m_mapHandlers;
};
#endif // !defined(AFX_ISMSGMANAGER_H__975F4620_557F_44FB_81FF_ECD5C55D9015__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -