1

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

非常感谢任何帮助。

4

1 回答 1

2

这是设计的行为。请参阅静态控制样式

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

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

于 2012-01-14T08:27:31.127 回答