我做了一个程序,窗口可以一直保持处于最前,现在我想点击这个窗口,得到在点击前的活动窗口的句柄,并向这个窗口发送一个虚拟键盘消息,然后把焦点还给刚才活动的这个窗口,请问这应该如何实现?最好有例程说明,分不成问题!

解决方案 »

  1.   

    比如说窗口A是我的程序,我正在使用窗口B,我点一下窗口A得到窗口B的句柄,然后向窗口B发一个enter键被按下的消息,然后使当前活动窗口还是B
      

  2.   

    可是我并不知道窗口B的title,而且如果找到所有窗口的句柄,怎么判断刚才激活的是哪个?
      

  3.   

    >>>现在我想点击这个窗口,得到在点击前的活动窗口的句柄>>>这个不好做
    你可以在你的程序中设一个热键,把你要发送键盘消息的目标窗口调到活动窗口时,按下热键,用GetForegroundWindow()获取当前活动窗口的句柄,然后向它SendMessage()看看这个:
    http://expert.csdn.net/Expert/topic/1625/1625128.xml?temp=.4073603
      

  4.   

    HWND hWnd = ::FindWindow( .../* 窗体标题 */ );
      

  5.   

    可是我觉得系统肯定记录这个信息的,比如你按一下ALT+Tab,前一个激活的窗口就重新被激活,我就是不知道这个信息被存在哪!有人可以帮我吗?
      

  6.   

    我从MSDN看到WM_ACTIVE这个消息保存了激活和没激活的窗口信息,能不能从这得到窗口句柄?请各位高手不吝赐教!
      

  7.   

    可是我并不知道窗口B的title,而且如果找到所有窗口的句柄,怎么判断刚才激活的是哪个?