谢谢。

解决方案 »

  1.   

    在我的类CMyWnd里。GetSafeHwnd()不行。
    不好意思,可能是我说的不清楚。我现在要设置一个Timer(在类CMyWnd里),必须要有hWnd才行,我知道要重载某个消息,但我不知道是哪一个?
      

  2.   

    我得到的 hWnd 为 0, 这个 hWnd什么时候是有效的?
      

  3.   

    只有在Show出来时,GetSafeHwnd()才能返回一个有效的值!
      

  4.   

    你可以(HWND) pWnd;

    CWnd.Detach();
      

  5.   

    SetTimer(1,500,NULL);表示在CWnd的WM_TIMER中处理
      

  6.   

    这个应该也可以:
    GetMainWnd()->m_hWnd;
      

  7.   

    我的体会:1 在类里是不能 SetTimer的,因为需要有 hWnd,此时在类里是 不可能有 hWnd的(事实上,应该说hWnd=0);
    但是,如果这个类已经有了一个窗口对象和它关联,(实际上就是 hWnd != 0)就可以SetTimer了。2 我发现了一个问题,是关于SetTimer的,好象有新的线程产生了。