我在 win2k3 citrix 上运行的遗留应用程序即将迁移到 win2k8 citrix。
在 win2k8 上进行测试时,我注意到在 2k3 上不明显的 UI 问题 - 按钮的标签不够宽,文本字段被截断等。
我注意到 Win2k3 默认字体是 Tahoma 而 2k8 使用 Segoe UI,不知道这是否是原因
这是一个仅托管我的应用程序的受控环境,因此更改 Windows UI 设置比重新设计我的所有窗口和对话框更可取。
如何使我的应用程序在 win2k8 上看起来与在 win2k3 上一样?
这是 rc 文件中我的登录对话框的示例。在 win2k8 上,文本“请输入您的用户 id”包含 2 行并隐藏在编辑框下。
IDD_LOGON DIALOG DISCARDABLE 0, 0, 545, 361
STYLE WS_POPUP | WS_VISIBLE
FONT 8, "Arial"
BEGIN
LTEXT "Welcome",IDC_USER_LOGON_HEAD1,368,192,140,19
LTEXT "Please enter your User ID",IDC_USER_LOGON_HEAD2,368,220,
118,14
EDITTEXT IDC_USER_LOGON_USER,368,236,81,12,ES_AUTOHSCROLL
LTEXT "and your password",IDC_USER_LOGON_HEAD3,368,260,118,14
EDITTEXT IDC_USER_LOGON_PASSWORD,368,276,81,12,ES_PASSWORD |
ES_AUTOHSCROLL
PUSHBUTTON "OK",IDOK,368,316,50,14,WS_DISABLED
PUSHBUTTON "E&xit",IDCANCEL,424,316,50,14
END
编辑:
我通过拍摄上述对话框的一些屏幕截图做了一些进一步的调查。看来问题不在于文本大小错误-对话框控件中的问题太小了!
例如:
对于控制 IDC_USER_LOGON_PASSWORD,它是 81 个对话单元 x 12 个对话单元。
它应该被渲染为 142 像素 x 24 像素
相反,它被渲染得太小,为 122 像素 x 21 像素
这会给任何人任何线索吗?