C++ MSG_MAP  marcro -> Mixin
    BLS 
    nanali at nospam-wanadoo.fr
       
    Wed Sep 19 12:21:14 PDT 2007
    
    
  
Hi,
MFC and wxWidgets are supporting MESSAGEMAPS macros. I would like to 
port them to D.
class CMsg
{
public:
	virtual BOOL NewMsgProc(HWND hWnd, UINT uID, WPARAM wParam, LPARAM 
lParam,LRESULT lResult)
	{
		return FALSE;
	}
};
Okay, here iy goes ....
#define BEGIN_MSG_MAP() \
public: \
	virtual BOOL NewMsgProc(HWND hWnd, UINT uID, WPARAM wParam, LPARAM 
lParam,LRESULT& lResult) \
	{ \
		
#define ON_MESSAGE(Msg, vfunc) \
	if(uID == Msg) \
	{ \
		vfunc(uID, wParam, lParam); \
		lResult = 0; \
		return TRUE; \
	}
#define ON_MESSAGE_RANGE(MsgF, MsgL, vfunc) \
	if(uID >= MsgF && uID <= MsgL) \
	{ \
		lResult=vfunc(uID, wParam, lParam); \
		return TRUE; \
	}
#define ON_COMMAND_CONTROL(iControl, iEvent, vfunc) \
	if(uID == WM_COMMAND && iControl == LOWORD(wParam) && iEvent == 
HIWORD(wParam)) \
	{ \
		vfunc(HIWORD(wParam), LOWORD(wParam), (HWND)lParam); \
		lResult = 0; \
		return TRUE; \
	}
and so on....
Is it possible to replace this C++ Macros with D2 Mixins and compile 
time manipulation of strings ?
How ?
Thanks, Bjoern
    
    
More information about the Digitalmars-d-learn
mailing list