Dav*_*own 5 vb6 com activex windows-7
我有一个用Visual Basic 6编写的小实用程序应用程序,它已经在XP客户端上运行了很多年,直到最近使用Windows 7的客户已经通知并告诉我行为不同.
当我的VB应用程序显示该对话框时,它将保持隐藏状态,直到用户在任务栏中单击它为止.
我更改了代码,而不是使用".show vbModal"命令,我改为使用非模态显示表单,然后添加各种API调用,如BringWindowToFront和SetWindowPos,使其成为最顶层的,并在表单上调用.focus,尽管有这些额外的说明,我可以实现的最佳结果是使表单闪烁,提示用户点击它.
无论我尝试过什么,我都无法将窗口显示在最顶层,并且无需用户干预.
注意.这是一个ActiveX exe项目,由Win16应用程序通过COM调用.
有没有其他人遇到这种行为并知道解决方案?
任何建议/意见表示赞赏,谢谢.
应用程序不能(不说谎)窃取焦点.调用app应该真正调用AllowSetForegroundWindow()(如果它在win16上可用)以允许COM进程窃取焦点或调用SetForegroundWindow()自身.
有关SetForegroundWindow()设置焦点的条件,请参阅帮助.