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<WPARAM>((void*)(&pItem)),0);//pitem是指针,本来就是地址 不需要&

PostMessage(WM_MY_DELETEITEM,reinterpret_cast<WPARAM>((void*)(pItem)),0);

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章