2012-01-14 2 views
1

Привет Я создал диалоговое окно в win32:Отображение значка больше, чем 32х32 в диалоговом окне

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 

Файл значка содержит различные размеры изображений, то есть 16х16, 32х32, 48х48 и т.д., однако код выше только позволяет это сделать будет отображаться как 32x32. Даже если я изменю его на

ICON "ID_MYICON_2",IDC_STATIC,0,0,16,16 

.. он по-прежнему отображается как 32x32. Как вы полностью контролируете размер значков? Мое первоначальное намерение состояло в том, чтобы отобразить BMP.

Любая помощь в оценке.

+0

Что произойдет, если вы включите файл значков 48x48 в свой * .ico? – Mikhail

ответ

2

Это поведение по дизайну. См. Static Control Styles:

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

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

+0

Спасибо за это. Работал. – owl7