永发信息网

vc中怎么使用SendMessage自定义消息函数

答案:4  悬赏:0  手机版
解决时间 2021-02-09 17:27
vc中怎么使用SendMessage自定义消息函数
最佳答案
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_*** 2. 定义一个消息函数:LRESULT Fun**(**,**) 3. 声明消息ON_MESSAGE(MESSAGE_***,Fun**) 4. 实现消息函数Fun** 5. 要使用的地方:SendMessage(句柄,MESSAGE_***,null,null)
首先 需要一个自定义消息 #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消息的窗口发送
1.宏定义一个message #define YOUR_MESSAGE 1120 2. 在你要发送这个消息的地方使用SendMessage来发送这个消息。 3. 在你要接受消息界面的MessageMap里面定义ON_MESSAGE(YOUR_MESSAGE, OnReceiveMessage) OnRecevieMessage 是你自定义的当接受要这个消息时执行的响应函数。 望采纳。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
河大照相馆地址在什么地方,我要处理点事
脱岗有什么处罚
古文中一纪是多少年
雪佛兰乐风1.4手动倒挡是空挡,一二档挂不上是
金沐容女人舫在哪里啊,我有事要去这个地方
(6分)阅读下面两段材料,运用所学知识回答
类似于“又大又厚”的词语有哪些?
地板上的灰尘毛发怎么才能扫干净
红玫瑰影楼地址在什么地方,想过去办事
用Excel做图表,怎么使三维饼图中的一部分分
常源农家乐地址在什么地方,想过去办事
电脑离猫很远影响网速么?
在学校秋季运动会上,五(1)班4名运动员在4×1
移动的网线网络很不稳定,怎么解决!
红牡丹照相馆(苏木乡红牡丹照相馆)地址在什么
推荐资讯
linux如何查看最近修改的文件
dota2已经入选亚运项目了吗
城头太守夜看时。猜一种动物
超越英语培训学校这个地址在什么地方,我要处
哪里可以大量的购买蝎子
湛江四中在麻章车站应乘坐几线公交车
路由器不能上网,猫灯只亮不闪怎么回事
【唐朝开国24功臣】唐朝24位开国功臣中为什么
吸烟有害健康的公益广告语
【青睐是什么意思】它再也得不到人们的青睐了
我反对同性恋
4399手游专区我的世界 试玩版
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?