我想在一个对话框的按钮里杀掉另外一个对话框里启动的计时器,怎么杀不掉啊?

解决方案 »

  1.   

    要有对方窗口的hwnd和计时器返回id, KillTimer(HWND,id);
      

  2.   

    hwnd这个句柄是怎么获得的?用什么函数?
      

  3.   

    柔性的方法是对方OnInit的时候用GetSafeHwnd()得到自身的hwnd,保存到全局变量,需要用的窗口自己去取.
    强硬的方法是用api的::FindWindow(NULL,"xxxx")查找对方的标题对应的HWND.
      

  4.   

    ‘对方窗口的hwnd和计时器id,’
    都要搞成全局变量
      

  5.   

    能弄到对方窗体句柄的话SendMessage自定义消息通知他,让他自己KillTimer如果能直接弄到指针就可以直接P->KillTimer
      

  6.   

    楼上已经说清楚了。问题的关键集中在在dialog1中拿到dialog2的句柄或指针,然后杀之。
    另外,要保证对话框窗口是“非模态”的,否则程序处于堵塞状态,无法完成操作。
      

  7.   

    那个计时器其实是在一个从CStatic里派生出来的,不是对话框,不过应该也是一样的。我去试下。