sendmessage2

juliedan 2000-08-19 09:16:00
大虾请帮我,我一直在困惑!在vc中有三个sendmessage函数,一个是CWindow类的,另一个是CWnd类的,还有一个是sdk的.它们有什么区别?当我想从一个单文档的工程中的视图里发送一个自定义的WM_MYMSG给About对话框中的一个Button1时,sendmessage该用哪一个?,又怎么用?如果我想从一个应用中的按钮单击处理程序中发送一个自定义消息给另外一个应用中的另一个按钮,又该怎样做?
进程间的消息又如何发送和接收呢?
...全文
209 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Holly 2000-08-20
  • 打赏
  • 举报
回复
你为何不看一下MFC的源代码,CWnd的SendMessage就是封装的SDK的::SendMessage;
boneheat 2000-08-20
  • 打赏
  • 举报
回复
CWindow类是用在ATL应用中的在正规的MFC程序中并不使用,在CWnd类中,SendMessage是指在同一个窗口中不同控制之间相互发送消息,所以,CWnd类中的SendMessage与Win32SDK中的SendMessage相比,缺少一个窗口句柄参数。因为CWnd默认使用了自己当前窗口的句柄。如果,在MFC应用中,同一进程内,不同窗口之间发送消息,就应使用Win32SDK中的SendMessage,注意在使用时加:域作用符::。进程间通信是Windows中的一个热门话题,叫做IPC机制,一般来讲不使用直接消息传递,如要使用的话也应用PostMessage将消息发到Windows的系统消息队列中。IPC机制应用类型很多,较常用的有DDE(动态数据交换);OLE(对象连接与嵌入);SOCKET(TCP/IP,SPX/IPX插座);PIPE(有名管道。注意,匿名管道是进程内通信用的);MAILSLOT邮件槽;等等。祝你愉快!
dzl 2000-08-20
  • 打赏
  • 举报
回复

简单地说,当在CWindow或CWnd派生出来的类内部传递消息,用它们各自的SendMessage就最方便,只要SendMessage(WM_XXXXXX)就行了,就算是在别的类,只要获得其CWnd(CWindow)指针,就可以方便地使用SendMessage。至于SDK的SendMessage,如果你获得了窗口的HWND,你就可以向这个窗口发送消息了。
也就是说,如果你获得了窗口的指针,当然就使用CWnd(CWindow)的SendMessage。如果你获得了窗口的句柄(HWND),当然就使用SDK的SendMessage。
U皮特U 2000-08-20
  • 打赏
  • 举报
回复
只要有消息接收窗口的窗口句柄,都可以使用SDK的SendMessage函数来发送消息。CWindow和CWnd类,自身包含了窗口句柄,它的SendMessage是发送消息给类所表示的窗口的。
zzh 2000-08-20
  • 打赏
  • 举报
回复
直接使用SDK中的函数就可以了。
FlyingHero 2000-08-20
  • 打赏
  • 举报
回复
CWindow和CWnd类的SendMessage是直接将消息发送给该类所代表的窗口。SDK的SendMessage有一个hWnd的参数,应用这个参数可以将消息发给任何窗口。后两个问题均可使用SDK的函数。

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧