我们公司正在销售两种不同的应用程序,这两种应用程序都是用C ++编写的,带有MFC 8.0
在这两个应用程序中,我们创建和打开模态对话框,如下所示:
dlg_options myOptions;
myOptions. DoModal();
这是我们近10年的方式。 我们有几百个客户拥有各种各样的Windows版本(XP到8.1),并且它总是以这种方式运行良好。
几个星期前,我们有一个客户,其中应用程序的模态对话框未作为最顶层窗口打开。他们留在后台,你必须手动激活它们才能将它们带到前面。
我无法解决这个问题但是在他的机器上(Win 8.1),客户已经安装了一些Windows的扩展,就像一个不同的开始菜单,所以我发现了一些责任。事实上,系统搞砸了。甚至有一个以上的开始菜单应用程序!重新安装Windows后一切都很好。
今天,我又遇到了同样的问题,不同的应用程序和不同的客户。他的系统又是Window 8.1,但这次我找不到任何Windows扩展。
两个系统都有一个共同点。您无法使用tab + alt键在应用程序之间切换。即使我们的软件没有运行,你也无法切换。当我们的应用程序运行时,您可以使用tab + alt将模式对话框从后台返回到前台。这非常好,但窗口应该从一开始就在前景中。
我不知道那里发生了什么,也没办法找到这个错误。 有没有人有类似的经历? 这是怎么回事?
答案 0 :(得分:0)
答案 1 :(得分:-1)
您应该通过以下方式执行此操作:
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);