提问人:David Partridge 提问时间:11/4/2023 最后编辑:David Partridge 更新时间:11/9/2023 访问量:90
当“语言”设置为日语时,自定义 MFC 控件的大小出现问题
Problem with size of custom MFC control when Language is set to Japanese
问:
我负责 DeepSkyStacker 应用程序。
如果系统语言设置为英语,则DeepSkyStacker将自己的语言设置为英语,并且其“处理”面板(右侧)正确显示:
如果系统语言设置为日语,则DeepSkyStacker将自己的语言设置为英语,因为没有完成日语翻译,因此其“处理”面板显示不正确:
具体来说,“渐变”滑块控件的显示高度为 51 像素,而当语言设置为英语时,它们只有 46 像素高:
有谁知道是什么原因导致的?
对话框定义如下:
IDD_RGB DIALOGEX 0, 0, 164, 126
STYLE DS_SETFONT | WS_POPUP | WS_CAPTION
CAPTION "RGB/K Levels"
FONT 8, "MS Shell Dlg 2", 0, 0, 0x1
BEGIN
CONTROL "Gradient",IDC_REDGRADIENT,"MFCGradientCtrl",WS_TABSTOP,16,3,148,30,WS_EX_CLIENTEDGE
CONTROL "Gradient",IDC_GREENGRADIENT,"MFCGradientCtrl",WS_TABSTOP,16,35,148,30,WS_EX_CLIENTEDGE
CONTROL "Gradient",IDC_BLUEGRADIENT,"MFCGradientCtrl",WS_TABSTOP,16,67,148,30,WS_EX_CLIENTEDGE
PUSHBUTTON "Reset",IDC_RESET,116,112,48,14
PUSHBUTTON "Apply",IDC_PROCESS,0,112,48,14
CONTROL "Linked settings",IDC_LINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,100,63,10
PUSHBUTTON "",IDC_UNDO,57,112,16,12
PUSHBUTTON "",IDC_REDO,95,112,16,12
PUSHBUTTON "",IDC_SETTINGS,76,112,16,12
PUSHBUTTON "",IDC_RED_HAT,2,5,14,27
PUSHBUTTON "",IDC_GREEN_HAT,2,37,14,27
PUSHBUTTON "",IDC_BLUE_HAT,2,69,14,27
END
大卫
答:
0赞
David Partridge
11/9/2023
#1
我通过创建一个专门用于日语的资源文件来解决此问题,该文件是从英语资源文件复制而来的,然后编辑了被剪裁的控件的对话框定义,以便不再发生剪裁(我将大多数控件的高度降低了 1.25 倍,并根据需要将它们向上移动)。
大卫
评论
FONT 8, "MS Shell Dlg", 0, 0, 0x0
MapDialogRect
并输出结果。如果它们不同,则问题可能与对话框的字体有关。WM_GETFONT
消息,并检查后续调用GetObject
返回的LOGFONT
。"Tahoma"