从第三方应用程序启动时,VB6 ActiveX exe失去了焦点

时间:2010-09-17 15:38:59

标签: vb6 activex focus

我有一个从第三方CRM App启动的VB6 ActiveX exe。在启动时,主窗体打开但它开始闪烁然后失去焦点。如果您移动表单,则会看到服务器忙碌屏幕,其中包含切换到重试按钮。

我尝试在表单的OnActivate事件中使用SetFocus和SetFocusAPI,但这不起作用。有关如何从其他应用程序启动此表单时有任何建议吗?

其他信息:

OnLoad事件调用SetWindowPos API,以便将应用程序集中在调用应用程序上并设置HWND_TOPMOST。

其他信息:

  • 活动窗口是正确的窗口(但它显然没有聚焦)

  • 前台窗口是调用应用程序。 SetForegroundWindow切换前景窗口,但立即返回到调用应用程序。直到我点击表单,表单才在前台。我正在调用表单的模块中的循环中尝试所有这些(而不是在调用应用程序中)。

2 个答案:

答案 0 :(得分:1)

CRM应用程序必须调用AllowSetForegroundWindow来“授权”ActiveX ProcessID以“窃取”当前进程的焦点。

答案 1 :(得分:0)

您是否尝试过在表单上设置标签顺序?您的用户控件的Tab键顺序应为0,以便获得焦点。

此外,重点发布后的重点是什么?