您好我在win32中创建了一个对话框:
ABOUTBOX DIALOG DISCARDABLE 32, 32, 180, 100
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,66,80,50,14
ICON "ID_MYICON_2",IDC_STATIC,0,0,48,48
CTEXT "comment1",IDC_STATIC,40,12,100,8
CTEXT "comment2",IDC_STATIC,7,40,166,8
CTEXT "comment3",IDC_STATIC,7,52,166,8
END
图标文件包含不同大小的图像,即16x16,32x32,48x48等,但上面的代码只允许显示为32x32。即使我将其改为
ICON "ID_MYICON_2",IDC_STATIC,0,0,16,16
..它仍显示为32x32。你如何完全控制图标大小?我的初衷是展示一个bmp。
最值得赞赏的任何帮助。
答案 0 :(得分:2)
这是设计行为。见Static Control Styles:
该样式忽略CreateWindow参数nWidth和nHeight;该 控件自动调整大小以适应图标。 正如它所使用的那样 在LoadIcon函数中,SS_ICON样式只能加载图标 尺寸SM_CXICON和SM_CYICON 。可以绕过此限制 除了SS_ICON之外,还使用SS_REALSIZEIMAGE样式。
此外,没有什么可以阻止您以编程方式加载48x48图标并将其传递给控件。