在PostMessage用到LPARAM来传递变量
LPARAM是Long型,可以用来表示一个内存地址,在SENDMESSAGE、PostMessage中可通过这个参数传递复杂数据,比如结构体 。传递的方式是传递结构体的指针。
示例如下:
::PostMessage(pDlg->m_hWnd,UM_OPENPOWER,(WPARAM)WParam,(LPARAM)&i);
然后我们接收端
LParam即为传递过来的参数 通过强转成int*类型的指针 再取值
最后转换为字符串的形式
CString t;
t.Format(_T("%d"),*(int*)LParam);
this->GetDlgItem(IDC_EDIT2)->SetWindowTextW((LPCTSTR)t);
注意
在传递参数时一定要注意如果是传递局部变量一定是用SendMessage()函数,如果是传递全局变量(而且在消息函数响应之前该全局变量不会被注销)则两种消息传递函数均可使用