SendMessage

函数声明

LRESULT SendMessage(  __in  HWND hWnd,  

                      __in  UINT Msg,  

                      __in  WPARAM wParam,  

                      __in  LPARAM lParam );

hWnd 参数:窗口句柄。窗口可以是任何类型的屏幕对象。

Msg 参数:用于区别其他消息的常量值。

wParam 参数:通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。

lParam 参数:通常是一个指向内存中数据的指针。

http://blog.csdn.net/rbmwjyc/article/details/78981751


1.自定义消息名

首先要自定义一个用户消息,我们一般用WM_USER +n来定义消息ID,n要大于100,小于100的已经被系统消息ID占用。

该操作一般位于头文件中。

#define WM_MYMSG WM_USER+101


2.声明一个函数用于接收消息。一般也放在头文件中

afx_msg LRESULT OnMyMsg(WPARAM wParam,LPARAM lParam);

 

3.给消息绑定接收函数

ON_MESSAGE(WM_MYMSG, OnMyMsg)

如果是基于MFC编程,在

//将消息和函数绑定

BEGIN_MESSAGE_MAP(CTraVariety, CDialog)

//{{AFX_MSG_MAP(CTraVariety)

、、、、、、、、

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

里面添加这句代码即可

 

4.定义消息接收函数,该函数位于下面的第5步中 句柄所代表的区域

LRESULT CTestClass::OnMyMsg(WPARAM wParam,LPARAM lParam)//登录成功消息

{

CString *nameMsg = (CString *)wParam;

/*********/

}

 

5.确定一个用来接收消息的句柄,该句柄要包含上述第4步中的消息接收函数

比如我们可以这样做:

HWND m_hMainWnd;//句柄变量

给句柄赋值

void CTraVariety::CTPInitWnd(CTraderSpi* UserSpi)

{

// pUserSpi的消息响应窗口设置为本窗口  //传递主窗口句柄:

UserSpi->SetHwnd(this->m_hWnd);

}

SetHwnd()函数定义如下:

void CTraderSpi::SetHwnd(HWND hWnd)

{

    m_hMainWnd = hWnd;

}

 

6.最后,你就可以随意使用SendMessage了,第一个参数是你想让这个消息发送到哪个句柄,第二个参数是消息的名,

第三个参数是发送的数据

//发送自定义消息

::SendMessage(m_hMainWnd,WM_USERLOGIN_RSP,(WPARAM)nameMsg,NULL);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值