MFC App 只能在管理员模式下无法最大化

MFC App Can't Maximize Only In Administrator Mode

我在 Windows 10 上安装了一个 MFC 应用程序,该应用程序的最大化按钮被禁用,因为它不是为调整大小而设计的。如果程序是 运行 而不是 administrator/elevated 那么用户可以将 window 最小化到任务栏,然后像往常一样 restore/maximize 。但是,如果应用程序是 运行 作为 administrator/elevated 权限,则 window 可以最小化到任务栏,但永远不会 restored/maximized.

我尝试过的事情:

这是成功(非管理员)最小化然后最大化的日志,其中最大化尝试发生在 ID 290 附近:https://pastebin.com/kRT4ABrC

这是不成功的(管理员)最小化然后最大化的日志,其中最大化尝试发生在 ID 176 附近:https://pastebin.com/nAiXUa8p

有人知道哪里出了问题吗?看起来不成功的日志确实缺少一堆 WM_ACTIVATEAPP 消息,但我不确定还有什么看起来不对劲。

"code" necessary for pastebin link posts

找到问题了!我在我们的代码中搜索了 "WM",发现了一些自定义消息处理程序,其中包括一个 ON_WM_MOVE (See for more info.)。我仍然不明白为什么它会导致问题,但删除它会给我们带来预期的效果。以下是导致任何好奇的人出现问题的代码。 positionPages 方法是自定义代码,可能是罪魁祸首:

void CMyDlg::OnMove(int x, int y)
{
    CDialogEx::OnMove(x, y);
    positionPages(false); // This keeps the page being displayed in the right location
}