以下函数绘制图像并保存图像边界矩形的客户端坐标。后续功能使用边界矩形来确定用户是否点击了图像。
// DrawTheImage - 透明地绘制图像并保存
//绘制图像的边界矩形
//如果成功返回TRUE,否则返回FALSE。
// hwnd - 绘制图像的窗口的句柄
// himl - 包含图像的图像列表的句柄
// cx和cy - 客户端坐标的左上角的图像
//
//全局变量和常量
// g_nImage - 要绘制的图像的索引
// g_rcImage - 图像的边界矩形
// CX_IMAGE和CY_IMAGE - 图像的宽度和高度
extern int g_nImage;
extern RECT g_rcImage;
#define CX_IMAGE 32
#define CY_IMAGE 32
BOOL DrawTheImage(HWND hwnd, HIMAGELIST himl, int cx, int cy)
{
HDC hdc;
if ((hdc = GetDC(hwnd)) == NULL)
return FALSE;
if(!ImageList_Draw(himl,g_nImage,hdc,cx,cy,ILD_TRANSPARENT))
return FALSE;
ReleaseDC(hwnd, hdc);
SetRect(&g_rcImage, cx, cy, CX_IMAGE + cx, CY_IMAGE + cy);
return TRUE;
}