Eri*_*ith 5 c++ desktop-application
我正在寻找混乱使用C++并构建某种可以与其他窗口交互的桌面应用程序.类似于窗口平铺管理器的东西(例如,最小化当前窗口,将窗口捕捉到网格中等).这可以用C++做吗?我只使用过命令行的东西,那么这种工作有一个很好的框架吗?任何正确的方向或我如何能够完成这样的事情都会很棒.
您可以使用它EnumWindows来遍历每个窗口。它从最上面的窗口开始,一直向下。以下代码将循环遍历每个可见窗口并打印出窗口的文本。
#include <windows.h>
#include <stdio.h>
BOOL CALLBACK EnumWindowsProc(HWND hWnd, long lParam) {
char buff[255];
if (IsWindowVisible(hWnd)) {
GetWindowText(hWnd, (LPSTR) buff, 254);
printf("%s\n", buff);
}
return TRUE;
}
int main() {
EnumWindows(EnumWindowsProc, 0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
由于您拥有每个窗口的句柄,因此您可以通过向它们发送消息来进行进一步的操作。
我创建了一个名为Desktop Playground 的工具来处理窗口和形状,它就使用了这种方法。
我生成一个线程并将每个窗口及其坐标和大小存储在哈希表中。然后我迭代并比较它们当前的位置和大小与之前的位置和大小,并执行回调让我的主线程知道窗口是否是Created、Moved、Reiszed、 或Destroyed。