我在对话框窗口程序 A 中,开了个线程 B ,在 B 中用 CreateProcess 打开另一个窗口程序 C ,同时隐藏程序 A
的窗口。很显然程序 C 的窗口应该显示出来并且处于激活状态。但是 C 的窗口就是不激活,标题栏是灰的。这下忙坏了,在 B 中对 C 又是
ShowWindow ,又是 SetForegroundWindow ,又是 SetActiveWindow ,还是不行,在前面加上
Sleep 2 秒,2 秒后 C 又变灰。焦头烂额 ......
想不到原来是 A 中在线程 B 结束的时候用 SetFocus 设置了 A 的一个控件。哈哈,你在 B 中无论你怎样激活窗口 C ,总要回到 A 来被 SetFocus 变成灰,狂晕!
程序出现了你意想之外的事情,一定有原因。因此我们一定要静下心来好好分析。