Отображение значка больше 32x32 в диалоговом окне - PullRequest
1 голос
/ 14 января 2012

Привет, я создал диалоговое окно в 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 Ответ

2 голосов
/ 14 января 2012

Это поведение по замыслу. См. Статические стили управления :

Стиль игнорирует параметры CreateWindow nWidth и nHeight; control автоматически изменяет размеры для размещения иконки. Как это использовать функция LoadIcon, стиль SS_ICON может загружать только значки размеры SM_CXICON и SM_CYICON . Это ограничение можно обойти с использованием стиля SS_REALSIZEIMAGE в дополнение к SS_ICON.

Кроме того, ничто не мешает вам загружать значок 48x48 программно и передавать его элементу управления.

...