[英]DrawState with specific width and height
我正在尝试使用DrawState
方法绘制一个禁用的图标。 我的问题现在是此方法忽略了宽度(参数BUTTONWIDTH
)和高度(参数BUTTONHEIGHT
)。
是否有其他可用的方法,或者我需要更改一些参数?
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);
}
从MSDN :
图像类型和状态。 此参数可以是以下类型值之一。
DST_COMPLEX
DST_ICON
…
此参数也可以是以下状态值之一。
DSS_DISABLED
…
您正在传递DST_COMPLEX | DST_ICON|DSS_DISABLED
DST_COMPLEX | DST_ICON|DSS_DISABLED
。 看来您应该决定是使用DST_COMPLEX
还是DST_ICON
而不要同时使用两者。 提醒:宽度和高度仅用于DST_COMPLEX
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.