在对话框中显示大于32x32的图标

时间:2012-01-14 05:41:16

标签: winapi win32gui

您好我在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。

最值得赞赏的任何帮助。

1 个答案:

答案 0 :(得分:2)

这是设计行为。见Static Control Styles

  

该样式忽略CreateWindow参数nWidth和nHeight;该   控件自动调整大小以适应图标。 正如它所使用的那样   在LoadIcon函数中,SS_ICON样式只能加载图标   尺寸SM_CXICON和SM_CYICON 。可以绕过此限制   除了SS_ICON之外,还使用SS_REALSIZEIMAGE样式。

此外,没有什么可以阻止您以编程方式加载48x48图标并将其传递给控件。