vc中怎么使用SendMessage自定义消息函数
4个回答
展开全部
SendMessage的基本结构如下: SendMessage(HWNDhWnd, //消息传递的目标窗口或线程的句柄。UINTMsg, //消息类别(这里可以是一些系统消息,也可以是自己定义,下文具体介绍,)WPARAMwParam, //参数1 (WPARAM 其实是与UINT是同种类型的, //在vc编译器中右键有个“转到WPARAM的定义”的选项可以查看。LPARAMlParam); //参数2 其中一些参数的由来如下: //typedef unsigned int UINT; //typedef UINT WPARAM; //typedef LONG LPARAM; //typedef LONG LRESULT; 例如可以用以下语句: ::SendMessage(this-m_hWnd, WM_MY_DOSOME, (WPARAM) 0, (LPARAM)0); 这里我发送的消息是本窗体接收的,所以句柄用:this-m_hWnd 这里的消息类别WM_MY_DOSOME就是我自定义的, 在接收消息的窗体或线程所在的头文件里: #define WM_MY_DOSOMEWM_USER+1//do something
展开全部
1.宏定义一个message
#define YOUR_MESSAGE 1120
2. 在你要发送这个消息的地方使用SendMessage来发送这个消息。
3. 在你要接受消息界面的MessageMap里面定义ON_MESSAGE(YOUR_MESSAGE, OnReceiveMessage)
OnRecevieMessage 是你自定义的当接受要这个消息时执行的响应函数。
望采纳。
#define YOUR_MESSAGE 1120
2. 在你要发送这个消息的地方使用SendMessage来发送这个消息。
3. 在你要接受消息界面的MessageMap里面定义ON_MESSAGE(YOUR_MESSAGE, OnReceiveMessage)
OnRecevieMessage 是你自定义的当接受要这个消息时执行的响应函数。
望采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先 需要一个自定义消息
#define WM_MYMESSAGE WM_USER + 1
然后 需要一个消息响应函数
LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
最后将自定义消息与消息响应函数关联
BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)//在这个下面 任意位置
...
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)//添加这句话
...
END_MESSAGE_MAP()//这句上面
之后就可以SendMessage了
例如
SendMessage(WM_MYMESSAGE, NULL, NULL);//同一个窗口里
HWND hMyWnd;//这个是要发送窗口的句柄
::SendMessage(hMyWnd, WM_MYMESSAGE, NULL, NULL);//针对 需要接收WM_MYMESSAGE消息的窗口发送
#define WM_MYMESSAGE WM_USER + 1
然后 需要一个消息响应函数
LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
最后将自定义消息与消息响应函数关联
BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)//在这个下面 任意位置
...
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)//添加这句话
...
END_MESSAGE_MAP()//这句上面
之后就可以SendMessage了
例如
SendMessage(WM_MYMESSAGE, NULL, NULL);//同一个窗口里
HWND hMyWnd;//这个是要发送窗口的句柄
::SendMessage(hMyWnd, WM_MYMESSAGE, NULL, NULL);//针对 需要接收WM_MYMESSAGE消息的窗口发送
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先定义一个消息宏 如:MESSAGE_***
定义一个消息函数:LRESULT Fun**(**,**)
声明消息ON_MESSAGE(MESSAGE_***,Fun**)
实现消息函数Fun**
要使用的地方:SendMessage(句柄,MESSAGE_***,null,null)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询