我在Windows 10上拥有一个MFC应用程序,该应用程序已禁用“最大化”按钮,因为它并非旨在调整大小。如果程序不是以管理员/提升用户身份运行的,则用户可以将窗口最小化到任务栏,然后像往常一样还原/最大化它。但是,如果应用程序以管理员/提升的特权运行,则可以将窗口最小化到任务栏,但永远不会还原/最大化。
我尝试过的事情:
这是成功(非管理员)最小化然后最大化的日志,其中最大尝试发生在ID 290周围:https://pastebin.com/kRT4ABrC
这是失败(管理员)最小化然后最大化的日志,其中最大尝试发生在ID 176周围:https://pastebin.com/nAiXUa8p
任何人都有什么想法是什么错误?看起来失败日志确实缺少一堆WM_ACTIVATEAPP消息,但是我不确定还有什么其他情况。
"code" necessary for pastebin link posts
答案 0 :(得分:-2)
发现了问题!我在代码中搜索了“ 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
}