2010-08-05 51 views
1

如何確保我的應用程序用戶界面不受Windows UI設置的影響?我應該對我的應用程序做些什麼修改才能防止它?WinForms應用程序UI受Windows UI設置的影響

+0

爲什麼你想這樣做?你認爲如果你強迫他們使用與他們舒服的設置不同的設置,你的用戶會很開心?畢竟這是他們首先選擇他們的原因之一?還是你在談論如何確保你的應用程序在運行時不知道這些設置的變化?不是很好,但更容易理解。 – 2010-08-05 10:23:52

+0

我瞭解您的意見,但這是我的客戶請求 – Cornel 2010-08-05 12:16:13

+0

啊,他(s)誰付賬單...有時候,只是沒有說服他們... – 2010-08-05 13:54:30

回答

1

我沒有確切的答案給你。只有建議,也因爲我使用Delphi並沒有使用winforms的經驗。

找到受Windows UI設置影響的所有區域都是一個挑戰。這將是一個挑戰,因爲大多數開發環境都會讓他們輕鬆地遵循應用程序中的UI設置,而不是覆蓋/忽略(更改)它們。

至少,你必須:

  • 的主題化的支持轉向。忽略標準的Windows顏色,字體,格式(日期,時間,數字,金錢等)和度量標準。並確保您的應用程序不響應任何有關這些設置更改的Windows消息(或者您將回到原點)。涉及的消息似乎是:WM_WININICHANGE,WM_SETTINGCHANGE,WM_FONTCHANGEWM_THEMECHANGED,但可能還有更多。在Delphi中,我將通過將Application.UpdateFormatSettingsApplication.UpdateMetricSettings設置爲False來獲得一些里程數,這將確保應用程序在收到WM_WININICHANGE消息時不會更改任何這些設置。我猜可能有一個類似於WinForms應用程序的策略,但是你仍然必須處理(或者忽略)其他消息。
  • 或者,確保您沒有使用開發環境中的任何功能,以便輕鬆地遵循這些設置。例如,請確保您不使用任何標準顏色常量(如clWindowText),這些常量並非真正的常量,而是特殊值,它們告訴IDE /編譯器/庫從Windows的設置中獲取值。對於通常通過Windows設置進行控制的所有內容,您都必須採取相同的方法。

最後,我不認爲它值得付出努力,而且,正如我在你對我的評論中提到的那樣,用戶不會感謝你這樣做。雖然我知道這是您客戶的要求,但您可能需要考慮回顧該客戶並說服他們這不是一個好主意。

相關問題