如何确保我的应用程序用户界面不受Windows UI设置的影响?我应该对我的申请做些什么改变以防止它?
答案 0 :(得分:1)
我没有给你一个确切的答案。只有建议,也因为我使用Delphi并没有使用winforms的经验。
找到受Windows UI设置影响的所有区域将是一项挑战。这将是一个挑战,因为大多数开发环境都会让您轻松地按照应用中的UI设置而不是推翻/忽略(更改)它们。
至少你必须:
WM_WININICHANGE
,WM_SETTINGCHANGE
,WM_FONTCHANGE
和WM_THEMECHANGED
,但可能还有更多。在Delphi中,我会通过将Application.UpdateFormatSettings
和Application.UpdateMetricSettings
设置为False来获得一些里程数,这将确保应用程序在收到WM_WININICHANGE消息时不会更改任何设置。我想WinForms应用程序可能有一个类似的策略,但你仍然需要处理(或者忽略)其他消息。clWindowText
),它们不是真正的常量,而是使用特殊值来告诉IDE /编译器/库从Windows设置中获取值。而且你必须对通常通过Windows设置控制的所有内容采取相同的方法。最后,我认为这不值得付出努力,正如我在你对你的问题的评论中已提到的那样,用户不会感谢你这样做。虽然我知道这是客户的要求,但您可能想要回到那个客户并说服他们这不是一个好主意。