【发布时间】:2016-07-15 04:18:24
【问题描述】:
我正在启动另一个应用程序并设置它的主要 HWND 位置和大小。我正在使用STARTUPINFO 标志来指定窗口尺寸,但看起来只有在新进程在其CreateWindow() 函数中使用CW_USEDEFAULT 时才会遵循这些尺寸。
STARTUPINFO 中是否有一个标志/设置将始终设置新进程 HWND 维度?我知道另一种解决方案,它可以找到进程主 HWND 和 SetWindowPos(),但这涉及枚举所有窗口以找到正确的窗口,并且一些应用程序需要一段时间才能启动,因此当我调用 EnumWindows() 时,窗口仍处于活动状态
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
si.dwX = x;
si.dwY = y;
si.dwXSize = w;
si.dwYSize = h;
// any flags I can set to give the STARTUPINFO dimensions priority?
si.dwFlags = ??
CreateProcess(_T("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"), _T(""),
NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL,
NULL, &si, &pi);
【问题讨论】: