关于CWnd接收消息 高手请进

yaozhiyong110 2010-06-21 09:50:48
我想写个接收发送消息的类 打算从CWnd继承 但是从CWnd继承就一定要Create是吧

因为我调试的时候 没有Create那么m_hWnd就是空的 当然也就没办法发消息了

可是我只是用来收发消息 根本用不到窗口啊 感觉建窗口是多此一举哦 有不用建窗口但

能让我这个类接收和发送消息的办法吗?(我现在是建的隐藏窗口,眼不见为净)

其次 当然会有高人提供其他办法让我实现这个接收发送消息的类 也欢迎高手提供其他方法

只要你的答案对我有价值就会给分(虽然分不重要) 谢谢。。。。。。
...全文
242 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
帅石头 2012-09-05
  • 打赏
  • 举报
回复
PostThreadMessage是往线程里面加消息,现在是要从线程往外面发消息。我也遇到了这个问题,不知道怎么处理中。得不到m_hWnd,我就是用了Create这个函数,m_hWnd还是个0,怎么办哦。烦。搞了一上午了,还没有弄好。
yaozhiyong110 2010-06-22
  • 打赏
  • 举报
回复
继续...............
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 wltg2001 的回复:]
我没用过PostThreadMessage 能给个示例之类的吗 给个参考 谢谢
======================
这个用什么示例啊,
BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM IParam);
不过是将句柄换成了线程ID而已.
[/Quote]

那我的类就是单独的线程来执行喽? 明天再继续讨论了哈
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
休息了 蛮晚了 谢谢大家 明天再来回帖了
wltg2001 2010-06-21
  • 打赏
  • 举报
回复
我没用过PostThreadMessage 能给个示例之类的吗 给个参考 谢谢
======================
这个用什么示例啊,
BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM IParam);
不过是将句柄换成了线程ID而已.
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 xsgluozi 的回复:]
这个实现起来比较困难啊,windows就是基于窗口消息的
你用Java来实现吧
[/Quote]

就发个消息 这么难? VC还搞不定了 都要跨语言了啊
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 wltg2001 的回复:]
我就是想知道 可不可以不用建窗口实现接收发送消息嘛 只是感觉建窗口只是为了产生m_hWnd

事实上这个窗口是不使用的 甚至是要隐藏的 窗口没意义啊 所以才想知道有没有其他办法或变通的

办法(当然不是我用的隐藏) 如果继承CWnd一定要建窗口才能接收发送消息 那还有其他办法吗?

不限于继承CWnd类的啊 只要支持消息机制就行的啊
===============
如果用SendM……
[/Quote]

我没用过PostThreadMessage 能给个示例之类的吗 给个参考 谢谢

还有就是使用PostThreadMessage如果比建窗口更耗性能那也就没意义了哦
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 m_tornado 的回复:]
举例,A,B,C,D四人,A想让B去打酱油,你给我说说你怎么办?
如果你能想清楚,你就能知道你的问题该怎么解决了。
[/Quote]

别弄那么玄乎行吗? 我现在的问题就是要使用到m_hWnd 而继承CWnd

就要创建窗口(我只是觉得不用的东西能不能不创建,可能是我要求高了)

不是我没实现 我只是想更好的方法 更简单的方法 不用一直纠缠不清

正面回答我的问题就行了 能就能 不能就不能 谢谢
晒月光的青蛙 2010-06-21
  • 打赏
  • 举报
回复
这个实现起来比较困难啊,windows就是基于窗口消息的
你用Java来实现吧
wltg2001 2010-06-21
  • 打赏
  • 举报
回复
我就是想知道 可不可以不用建窗口实现接收发送消息嘛 只是感觉建窗口只是为了产生m_hWnd

事实上这个窗口是不使用的 甚至是要隐藏的 窗口没意义啊 所以才想知道有没有其他办法或变通的

办法(当然不是我用的隐藏) 如果继承CWnd一定要建窗口才能接收发送消息 那还有其他办法吗?

不限于继承CWnd类的啊 只要支持消息机制就行的啊
===============
如果用SendMessage,那么一定要hwnd,但是,如果用PostThreadMessage的话,可以不用hwnd,你可以从这一点来考虑实现
m_tornado 2010-06-21
  • 打赏
  • 举报
回复
举例,A,B,C,D四人,A想让B去打酱油,你给我说说你怎么办?
如果你能想清楚,你就能知道你的问题该怎么解决了。
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 m_tornado 的回复:]
把指向自己类的指针暴露出来,想想跟窗口类似,自己找事嘛~你要想写个简单的消息处理应该也还好
[/Quote]


就是个简单的消息处理
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
今天休息了 明天继续 分不够发 我继续开贴给 谢谢你们的回复
m_tornado 2010-06-21
  • 打赏
  • 举报
回复
把指向自己类的指针暴露出来,想想跟窗口类似,自己找事嘛~你要想写个简单的消息处理应该也还好
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 m_tornado 的回复:]
自己写个处理消息的类?
纯C++ 的

人发一个消息你用list<MSG>记录,然后你自己认为合适的时候顺序处理,好比,CYourClass::SendOwnMSG(Wparam,LParam);你自己记录什么消息,你自己另开线程处理你的消息吧

可以试试~我没试过
[/Quote]

我怎么接? 他怎么发?可别说 直接互相用指针调 那样没意义
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wltg2001 的回复:]
你写一个类用来接收消息和发送消息?如果没有窗口,人家怎么发消息给你呢
[/Quote]

我就是想知道 可不可以不用建窗口实现接收发送消息嘛 只是感觉建窗口只是为了产生m_hWnd

事实上这个窗口是不使用的 甚至是要隐藏的 窗口没意义啊 所以才想知道有没有其他办法或变通的

办法(当然不是我用的隐藏) 如果继承CWnd一定要建窗口才能接收发送消息 那还有其他办法吗?

不限于继承CWnd类的啊 只要支持消息机制就行的啊
m_tornado 2010-06-21
  • 打赏
  • 举报
回复
自己写个处理消息的类?
纯C++ 的

人发一个消息你用list<MSG>记录,然后你自己认为合适的时候顺序处理,好比,CYourClass::SendOwnMSG(Wparam,LParam);你自己记录什么消息,你自己另开线程处理你的消息吧

可以试试~我没试过
wltg2001 2010-06-21
  • 打赏
  • 举报
回复
你写一个类用来接收消息和发送消息?如果没有窗口,人家怎么发消息给你呢
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 m_tornado 的回复:]
引用 6 楼 yaozhiyong110 的回复:

引用 4 楼 wltg2001 的回复:
可是我只是用来收发消息 根本用不到窗口啊 感觉建窗口是多此一举哦
===========
你所说的收发消息指的是什么啊?收SendMessage发过来的消息一定要hwnd的


对啊 就是啊 意思是 一定要建窗口了? 不建窗口m_hWnd就是空吧 没其他办法???


句柄只是一个……
[/Quote]

有其他方法 实现我的需求吗? 只用来发送和接收消息 建窗口只是为了标识感觉是不是太
浪费了
yaozhiyong110 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wltg2001 的回复:]
对啊 就是啊 意思是 一定要建窗口了? 不建窗口m_hWnd就是空吧 没其他办法???
===========
hwnd是窗口句柄,没窗口当然就是空了
[/Quote]

有其他方法 实现我的需求吗? 只用来发送和接收消息 窗口纯属多余的
加载更多回复(8)

16,473

社区成员

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

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

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