我想写个接收发送消息的类  打算从CWnd继承  但是从CWnd继承就一定要Create是吧 因为我调试的时候 没有Create那么m_hWnd就是空的  当然也就没办法发消息了可是我只是用来收发消息  根本用不到窗口啊  感觉建窗口是多此一举哦  有不用建窗口但能让我这个类接收和发送消息的办法吗?(我现在是建的隐藏窗口,眼不见为净)其次 当然会有高人提供其他办法让我实现这个接收发送消息的类 也欢迎高手提供其他方法只要你的答案对我有价值就会给分(虽然分不重要)  谢谢

解决方案 »

  1.   

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

  2.   


    CView不用建窗口?  它是继承CWnd的啊  CWnd都要create后m_hWnd才有值啊 那CView也要相应操作吧  我就是不想要其他的什么操作 我只要它能接收和发送消息就可以了
      

  3.   


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

  4.   

    对啊 就是啊 意思是 一定要建窗口了? 不建窗口m_hWnd就是空吧 没其他办法???
    ===========
    hwnd是窗口句柄,没窗口当然就是空了
      

  5.   


    句柄只是一个标识,主要是你要通知这个窗口要干嘛了,好比你让小明去打酱油,你总不能说:哎,那谁,你去打酱油吧。 这时候你应该说:小明,去打点酱油吧
    SendMessage(NULL, “打酱油”,“”)?谁去呢?
    SendMessage(小明, “打酱油”, “”)哦,这时候小明知道了,去打酱油如果句柄为空,那么就像小明还没出生呢,他怎么知道打酱油是什么呢?不一定是句柄,只要获得对象指针就可以,好比直接  小明->FunctionDaJiangYou();也可以,不过还是建议用消息,因为操作系统是在它认为“合适的时候”处理消息,毕竟是MS的东西,还得按照人家的规则来办事~
      

  6.   

    自己写个处理消息的类?
    纯C++ 的人发一个消息你用list<MSG>记录,然后你自己认为合适的时候顺序处理,好比,CYourClass::SendOwnMSG(Wparam,LParam);你自己记录什么消息,你自己另开线程处理你的消息吧可以试试~我没试过
      

  7.   


    我就是想知道 可不可以不用建窗口实现接收发送消息嘛  只是感觉建窗口只是为了产生m_hWnd事实上这个窗口是不使用的 甚至是要隐藏的  窗口没意义啊  所以才想知道有没有其他办法或变通的办法(当然不是我用的隐藏)  如果继承CWnd一定要建窗口才能接收发送消息  那还有其他办法吗?不限于继承CWnd类的啊  只要支持消息机制就行的啊
      

  8.   

    举例,A,B,C,D四人,A想让B去打酱油,你给我说说你怎么办?
    如果你能想清楚,你就能知道你的问题该怎么解决了。
      

  9.   

    我就是想知道 可不可以不用建窗口实现接收发送消息嘛 只是感觉建窗口只是为了产生m_hWnd事实上这个窗口是不使用的 甚至是要隐藏的 窗口没意义啊 所以才想知道有没有其他办法或变通的办法(当然不是我用的隐藏) 如果继承CWnd一定要建窗口才能接收发送消息 那还有其他办法吗?不限于继承CWnd类的啊 只要支持消息机制就行的啊
    ===============
    如果用SendMessage,那么一定要hwnd,但是,如果用PostThreadMessage的话,可以不用hwnd,你可以从这一点来考虑实现
      

  10.   

    这个实现起来比较困难啊,windows就是基于窗口消息的
    你用Java来实现吧
      

  11.   


    别弄那么玄乎行吗?  我现在的问题就是要使用到m_hWnd 而继承CWnd就要创建窗口(我只是觉得不用的东西能不能不创建,可能是我要求高了)不是我没实现  我只是想更好的方法 更简单的方法 不用一直纠缠不清 正面回答我的问题就行了 能就能  不能就不能  谢谢 
      

  12.   


    我没用过PostThreadMessage 能给个示例之类的吗 给个参考 谢谢还有就是使用PostThreadMessage如果比建窗口更耗性能那也就没意义了哦 
      

  13.   

    我没用过PostThreadMessage 能给个示例之类的吗 给个参考 谢谢
    ======================
    这个用什么示例啊,
    BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM IParam); 
    不过是将句柄换成了线程ID而已.
      

  14.   

    PostThreadMessage是往线程里面加消息,现在是要从线程往外面发消息。我也遇到了这个问题,不知道怎么处理中。得不到m_hWnd,我就是用了Create这个函数,m_hWnd还是个0,怎么办哦。烦。搞了一上午了,还没有弄好。