一、 DrawIcon
函数原型:
BOOL CDC::DrawIcon(
int x,
int y,
HICON hIcon
);
功能:
在指定位置绘制ICON,无论ICON实际的大小为多少,绘制的大小均为Windows系统默认的ICON大小,一般为32x32。
二、 DrawIconEx
函数原型:
BOOL DrawIconEx(
HDC hdc,
int xLeft,
int yTop,
HICON hIcon,
int cxWidth,
int cyWidth,
UINT istepIfAniCur, // 一般为0
HBRUSH hbrFlickerFreeDraw, // 一般为NULL
UINT diFlags // 一般为DI_NORMAL | DI_COMPAT
);
xLeft, yTop: 指定位置
cxWidth, cyWidth:
指定绘制大小
1. 按ICON的实际尺寸绘制: 设置cxWidth=0, cyWidth=0,并且在diFlags不指定DI_DEFAULTSIZE
2. 按Windows系统默认的ICON大小(一般为32x32)绘制: 在diFlags指定DI_DEFAULTSIZE
3. 按cxWidth, cyWidth指定的大小绘制: cxWidth,cyWidth不为0, 在diFlags不指定DI_DEFAULTSIZE
示例一:按ICON的实际尺寸绘制
::DrawIconEx(hdc, 0, 0, hIcon, 0, 0, 0, NULL, DI_NORMAL | DI_COMPAT);
示例二:按Windows系统默认的ICON大小(一般为32x32)绘制
::DrawIconEx(hdc, 0, 0, hIcon, 0, 0, 0, NULL, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE);
示例三:按指定大小绘制
::DrawIconEx(dc.GetSafeHdc(), 0, 0, hIcon, 60, 60, 0, NULL, DI_NORMAL | DI_COMPAT);