如何选择并突出显示另一个应用程序中的窗口?

时间:2008-10-23 05:53:07

标签: c++ windows

我想将一些C ++程序的击键发送到另一个窗口。

出于这个原因,我希望用户选择目标窗口,类似于在Visual Studio附带的Spy ++实用程序中完成的操作(将十字光标拖到目标窗口上,并使目标窗口以框架突出显示)。

如何在Windows中进行拖动和选择?我完全迷失了,我可能会开始寻找实现此功能的机制。

2 个答案:

答案 0 :(得分:2)

以下是通常的做法:

  1. 使用SetCapture捕获鼠标。这将导致所有鼠标消息都被路由到您应用程序的窗口。
  2. 处理WM_MOUSEMOVE消息。在处理程序代码中,使用WindowFromPoint抓取鼠标下方的窗口。这将获得鼠标当前所在窗口的HWND。
  3. 现在你已经有了窗口,你需要一个设备上下文(HDC)。您可以使用GetWindowDC为指定的窗口获取一个。
  4. 现在您可以使用典型的GDI函数绘制DC。
  5. 有些事情你需要注意 - 干净地擦除选择矩形等等,但这是一种方法。

    您也可以在屏幕DC中进行此操作,但无论如何您都需要窗口句柄才能使窗口变为矩形。

    如果你围绕Spy ++源代码谷歌,你会看到一些这种技术的例子。

答案 1 :(得分:0)

前者的答案是错误的。

Spy ++源代码已在G. Groups上提供多年(主要参见Win32 api ng news://194.177.96.26/comp.os.ms-windows.programmer.win32)