跟随另一个现有hwnd窗口的Windows

时间:2015-07-01 09:42:05

标签: c++ windows

我需要创建一个带有窗口(B)的应用程序,它位于工具栏中已有的另一个进程中的另一个窗口(A)之后。如果用户向左移动窗口A,则B窗口向左移动。并复制其他操作以及在窗口A上执行。

任何方向都非常受欢迎。 (我相信我需要用SetWindowsHookex来实现它。)

1 个答案:

答案 0 :(得分:0)

一般来说,另一个进程拥有的窗口不在您的控件中。因此,您需要一个IPC机制来在您的进程之间进行通信,并让工具栏进程在其被告知时移动其窗口。假设你已经有了这个IPC机制,程序将如下:

  1. 主进程启动并创建主窗口
  2. 主进程将回调函数与窗口关联(使用RegisterClass()
  3. 回调函数检查WM_MOVE消息并将增量(即位置变化)转发给从属进程(工具栏)
  4. Slave进程在将delta添加到窗口的上一个位置之后调用从属窗口上的MoveWindow()。