定义了一个类
class CManager  : public CWnd在程序某处new 了一个实例但是其他地方不管是sendMessage或者Postmessage给它都不行我估计是要将它绑定到一个窗口,但是不知道应该怎么绑定到窗口
给点代码瞧瞧拉

解决方案 »

  1.   

    你随便找个有窗口的类看看好像得弄个Enum{IDD = ...}
      

  2.   

    LRESULT SendMessage(
      HWND hWnd,      // handle of destination window
      UINT Msg,       // message to send
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    );BOOL PostMessage(
      HWND hWnd,      // handle of destination window
      UINT Msg,       // message to post
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    );
    注意这两个API的第一个参数,他们都是接受消息的窗口句柄。虽然MFC中的函数没有这个句柄但是其实是MFC封装了这两个API函数,最终调用还是他们。所以要接受消息,必须是窗口类。
      

  3.   

    class CManager  : public CWnd
    {
         public:
             int   m_iVal;
    }//在CManager定义一线程,一直扫描m_iVal的值,发现m_iVal值变化就doSth.你想发消息,就改变m_iVal的值好了.
      

  4.   

    但是其他地方不管是sendMessage或者Postmessage给它都不行=====================>
    你是怎么sendMessage或者Postmessage的?可以参考这样:
    CManager *pManager=NULL;
    pManager = new CManager;
    SendMessage(pManager->GetSafeHwnd(),msg,wParam,lParam );还有,仔细检查消息响应函数是不是正确.
      

  5.   

    看来楼主很认真^_^佩服给类添加
    protected:
    DECLARE_MESSAGE_MAP()然后再实现
    BEGIN_MESSAGE_MAP(CManager,CWnd)
    //{{AFX_MSG_MAP(CManager )
    // No message handlers
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    试试,主要还是要参考向导生成的代码
      

  6.   

    问题终于部分解决了
    用AfxRegisterWndClass生成一个窗口,
    用create绑定这个窗口
    CString m_sWndName=AfxRegisterWndClass(NULL); this->Create(m_sWndName,"??",WS_BORDER,m_Rect,pMain,12345);
    除了第一个参数外,后面几个都是乱写的,偶还不会用。这个还有一个问题,这个类释放的时候我恐怕还要释放窗口,不知道应该怎么做!
      

  7.   

    从CCmdTarget类继承过来,就可有消息了吧