sendmessage 发送字符串
2015-09-07 10:07
211 查看
如何用SendMessage()函数传递字符串
-----------------------------
一、两个参数都带字符串的形式:
void CAaaDlg::OnButton1()
{
char* p1 = "Willis";
char* p2 = "VCHelp";
SendMessage(WM_CURRENTINFO, (WPARAM)p1, (LPARAM)p2 );
}
LRESULT CAaaDlg::OnCurrentInfo(WPARAM wParam, LPARAM lParam )
{
MessageBox((LPSTR)wParam,(LPSTR)lParam,0);//消息函数里接收字符串
return 0;
}
--------
二、只带一个字符串的形式:
CString strPara = _T("fggg");
::SendMessage(hWnd,WM_XXXX,0,(LPARAM)(LPCTSTR)strPara);
OnMessageXXXX(WPARAM wParam,LPARAM lParam)
{
CString strddd = (LPCTSTR)lParam; //在消息处理函数里接收字符串
}
////////how to use wm_copydata to pass string
使用WM_COPYDATA:
CString str = _T( "Hello" );
HWND hWndReceived = FindWindow( "Receiver", NULL );
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strDataToSend.GetLength();
cpd.pData = (void*)str.GetBuffer(cpd.cbData);
SendMessage( hWndReceived, WM_COPYDATA, 0, (LPARAM) & cpd );
str.ReleaseBuffer();
加入映射宏:
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
//{{AFX_MSG_MAP(CMyWnd)
...
ON_WM_COPYDATA()
...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
...
映射函数:
BOOL CMyWnd::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
CString strRecievedText = (LPCSTR) (pCopyDataStruct->lpData);
return CMyWnd::OnCopyData(pWnd, pCopyDataStruct);
}
相关文章推荐
- Accuracy、Precision、Recall and F1的概念详解
- jQuery(8) 实现Ajax应用
- IOS8下UIView下的TableView从UINavigationController中POP出来后crash
- C++文件读写
- iOS中3种正则表达式的使用与比较
- python 学习之glob、dir、getattr、callable、正则表达式
- Nodejs找不到static方法
- 严肃计算,告诉你 Chrome、Firefox 和 Safari 到底谁耗电多
- Linux下的中断与异常
- 面试题 12
- 【springmvc+mybatis项目实战】杰信商贸-7.生产厂家新增
- docker 镜像
- Java中面向对象思想分析
- textView设置placeholder
- Python变量在计算机内存中的表示
- oracle加固
- 上线10天 来看看微信读书中的“匠心”
- AFNetworking2.6版不通过pod引入时报的错误
- mysql下sql语句 update 字段=字段+字符串
- 车象记忆一