2015-10-21 2 views
0

Я пытаюсь нарисовать значок с отключенным способом DrawState. Моя проблема заключается в том, что этот метод не учитывает ширину (параметр BUTTONWIDTH) и высоту (параметр BUTTONHEIGHT).DrawState с определенной шириной и высотой

Есть ли другой доступный метод или мне нужно изменить некоторые параметры?

void CPgFPButton::DrawButtonIcon(LPDRAWITEMSTRUCT lpdis, HICON hicon) 
{ 
    RECT rect = lpdis->rcItem; 
    rect.left = 3; 
    rect.top = 3; 

    if (!m_Enabled) 
     DrawState(lpdis->hDC,NULL, NULL, (LPARAM)hicon, (WPARAM)NULL, 
        rect.left, rect.top, BUTTONWIDTH, BUTTONHEIGHT, 
        DST_COMPLEX | DST_ICON|DSS_DISABLED); 
    else    
     DrawIconEx(lpdis->hDC, 
        rect.left,rect.top,hicon, 
        BUTTONWIDTH - 3 * 2, 
        BUTTONHEIGHT - 3 * 2,0,NULL,DI_NORMAL); 
} 

ответ

1

MSDN От:

Тип изображения и состояние. Этот параметр может быть одним из следующих значений типа.
DST_COMPLEX
DST_ICON
& hellip;
Этот параметр также может быть одним из следующих значений состояния.
DSS_DISABLED
& hellip;

Вы прошли мимо DST_COMPLEX | DST_ICON|DSS_DISABLED. Похоже, вы должны решить, следует ли использовать DST_COMPLEX или DST_ICON и не использовать оба варианта. Напоминаем: ширина и высота используются только для DST_COMPLEX.

Смежные вопросы