加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-7 – VB6应用程序出现问题,将对话框放在前面并专注于Win

发布时间:2020-12-14 01:52:52 所属栏目:Windows 来源:网络整理
导读:我有一个用Visual Basic 6编写的小实用程序应用程序,它已经在XP客户端上运行了很多年,直到最近使用 Windows 7的客户已经通知并告诉我行为不同. 当我的VB应用程序显示该对话框时,它将保持隐藏状态,直到用户在任务栏中单击它为止. 我更改了代码,而不是使用“.s
我有一个用Visual Basic 6编写的小实用程序应用程序,它已经在XP客户端上运行了很多年,直到最近使用 Windows 7的客户已经通知并告诉我行为不同.

当我的VB应用程序显示该对话框时,它将保持隐藏状态,直到用户在任务栏中单击它为止.

我更改了代码,而不是使用“.show vbModal”命令,我改为使用非模态显示表单,然后添加各种API调用,如BringWindowToFront和SetWindowPos,使其成为最顶层的,并在表单上调用.focus,尽管有这些额外的说明,我可以实现的最佳结果是使表单闪烁,提示用户点击它.

无论我尝试过什么,我都无法将窗口显示在最顶层,并且无需用户干预.

注意.这是一个ActiveX exe项目,由Win16应用程序通过COM调用.

有没有其他人遇到这种行为并知道解决方案?

任何建议/意见表示赞赏,谢谢.

解决方法

应用程序不能(不说谎)窃取焦点.调用app应该真正调用 AllowSetForegroundWindow()(如果它在win16上可用)以允许COM进程窃取焦点,或者调用 SetForegroundWindow()本身.

有关设置焦点的条件,请参阅SetForegroundWindow()的帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读