Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 跟随另一个现有hwnd窗口的窗口_C++_Windows - Fatal编程技术网

C++ 跟随另一个现有hwnd窗口的窗口

C++ 跟随另一个现有hwnd窗口的窗口,c++,windows,C++,Windows,我需要创建一个应用程序,其中的窗口(B)位于工具栏中已经存在的另一个进程中的另一个窗口(A)之后。如果用户向左移动窗口A,则B窗口将跟随它向左移动。以及复制在窗口A上执行的其他操作 任何方向都是非常受欢迎的。(我认为我需要使用SetWindowsHookex实现它)。一般来说,另一个进程拥有的窗口不在您的控制范围内。因此,您需要一个IPC机制来在进程之间进行通信,并让工具栏进程在接到通知时移动其窗口。假设您已经有了IPC机制,程序如下: 主进程启动并创建主窗口 主进程将回调函数与窗口关联(使用)

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


任何方向都是非常受欢迎的。(我认为我需要使用SetWindowsHookex实现它)。

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

  • 主进程启动并创建主窗口
  • 主进程将回调函数与窗口关联(使用)
  • 回调函数检查WM_移动消息,并将增量(即位置变化)转发到从属进程(工具栏)
  • 从属进程在将增量添加到窗口的上一个位置后,对从属窗口调用MoveWindow()

  • 使用SplitterWindows可能是可行的:谢谢你的回答。此IPC机制由Windows挂钩和SetWindowsHookEx实现。如果我们已经在讨论它,我不会说SetWindowsHookEx一定是IPC机制。一种方法是在从进程上设置WH_CALLWNDPROC钩子,而不必在进程之间执行IPC。但这不起作用,因为钩子将在拥有窗口(主窗口)的进程的上下文中执行,因此从窗口上的MoveWindow将失败。你有一些IPC选项:谢谢,我确实会去看看。如果我想让Window Master成为calculator,这意味着我没有能力将IPC从calculator设置为slave Window进程。在这种情况下,如何设置IPC?