我在线程函数中Create了一个CMyView的实例,可以看到这个view当中包含的控件,但是就是不能响应鼠标~甚至这个view的WM_LBUTTONDOWN也不反应~~如何解决这个问题,使得这个view变得正常呢?谢谢指教!

解决方案 »

  1.   

    我想原因应该是你的线程中没有消息循环的原因从CWinThread派生一个线程类,在这个类中创建你的CMyView,用下面这个函数启动你的线程
    CWinThread* AfxBeginThread(
       CRuntimeClass* pThreadClass,
       int nPriority = THREAD_PRIORITY_NORMAL,
       UINT nStackSize = 0,
       DWORD dwCreateFlags = 0,
       LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL 
    );
      

  2.   

    首先谢谢关注:)我在线程函数当中建立了消息循环~~Getmessage不行。后来我用了CWinTread派生类,还是不行~~另外,这些“消息循环”,在我看来,只能保证线程可以接收到主线程的消息,但是不能保证我创建的窗口可以响应鼠标的消息~~郁闷中啊~
      

  3.   

    window中消息循环的机制是 : 鼠标按键 -> 系统消息队列 -->getmessage() ->
    translatemessage()->dispatch() 
    dispatchMessage 将&message 发送到你的主窗口的WndProc,你是怎么让$message 转发到你的子线程的那?