请教下,想自定义一个消息问题
我想实现自顶一个消息,并且当窗口接受到这个消息时,自定义一个函数来处理。
宏定义:#define WM_YOURMESSAGE WM_USER+100
我想在WM_YOURMESSAGE能够携带一些参数,比如带一个结构体。那该怎么定义这个消息的结构啊,
然后窗口接受到这个消息后,怎么把消息中的这个结构体变量给取出来啊,
请写详细点,谢谢。
[解决办法]
#define WM_YOURMESSAGE WM_USER+100...typedef struct ... TYOURMESSAGEParam;...TYOURMESSAGEParam Param;....SendMessage(DstHandle, WM_YOURMESSAGE, (WPARAM)&Param, NULL);...void __fastcall XXXXForm::WndProc(TMessage msg){ if(msg.Msg == WM_YOURMESSAGE) { ProcessYourMessage((TYOURMESSAGEParam *)msg.wParam); rerutn ; } }void __fastcall XXXXForm::ProcessYourMessage(TYOURMESSAGEParam* pMsgParam){ .... }
[解决办法]
基本就是1楼说的这些了。
关于参数的生命周期问题,我的建议是这样:如果用TYOURMESSAGEParam Param;这样的定义方式,建议用SendMessage,如果是用new创建的对象,可以用SendMessage,返回后delete,或者用PostMessage,由对方来负责delete
[解决办法]
特别注意:
如果跨进程的话,可能是出错的哟