2012-04-06 19:56:14|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, MFC, 字符处理|来源:唯设编程网
SendMessage函数的原型为:
LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
用于消息传递,其中有WPARAM 和 LPARAM 两个附加参数,可以传递一些附加信息,由于它们是long 型的,所以只能传递数字,如果想要传递字符串之类的则需要使用指针,即字符串的地址。
下面是一个小例子:(我用的是VS2008、Unicode编码)
详细步骤:
1、新建一个基于对话框的MFC项目程序 ---- SendMessage
2 、在主对话框中添加一按钮
3、为按钮添加事件处理程序(左击事件),代码如下
void CSendMessageDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 CString* msg = new CString("发送的字符串"); ::SendMessage(this->m_hWnd,WM_USER+1,0,(LPARAM)msg); delete msg; }
4、添加消息响应函数
在SendMessageDlg.h 头文件中添加:
afx_msg HRESULT OnClickBtn1(WPARAM,LPARAM);
在SendMessageDlg.cpp 源文件中添加:
ON_MESSAGE(WM_USER+1,OnClickBtn1)
(在BEGIN_MESSAGE_MAP(CSendMessageDlg, CDialog)
.....
END_MESSAGE_MAP() 里面)
在 SendMessageDlg.cpp 的最后添加函数定义
HRESULT CSendMessageDlg::OnClickBtn1(WPARAM wParam,LPARAM lParam){ CString* rmsg = (CString*)lParam; MessageBox(*rmsg); return TRUE; }