mfc自定义消息 wparam lparam 参数传递指针

1.在.cpp文件中添加
#define  WM_MY_DELETEITEM  WM_USER+100

2.在.h文件

afx_msg LRESULT OnDeleteItem(WPARAM,LPARAM);

3、在.cpp文件中添加

ON_MESSAGE(WM_MY_DELETEITEM,&CDDSServerDlg::OnDeleteItem)

4、定义函数OnDeleteItem

5.发消息

SendMessage或者PostMessage

CTreeItem* pItem ;

PostMessage(WM_MY_DELETEITEM,reinterpret_cast((void*)(&pItem)),0);//pitem是指针,本来就是地址 不需要&

PostMessage(WM_MY_DELETEITEM,reinterpret_cast((void*)(pItem)),0);

wparam和lparam工作:将需要传递的参数包装成一个结构体对象,在发出消息的时候把这个对象的地址作为参数。因此,在调用时处理函数就可以拿到这些数据了。微软怕一个地址不够用,所以给了两个作为备用。

参数转换为wparam:(WPARAM)((void*)&m_param)

wparam转换为参数类型: pItem = reinterpret_cast((void*)wParam);

你可能感兴趣的:(MFC)