【发布时间】:2016-05-19 08:04:48
【问题描述】:
与许多开发人员一样,我尝试在按钮上加载不同的图像以实现按钮的不同状态(正常、悬停和单击)。 我开始包含一个 64x64 尺寸
的图标我定义了自己的控制按钮,尺寸为 35x35:
CONTROL "INV",IDC_SENSINV,"Button",BS_OWNERDRAW | WS_TABSTOP,75,106,35,35
我定义了一个预子类按钮,在 drawItem 函数中,我得到了矩形、加载图标和绘制图标:
void CimageButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
CRect rect = lpDrawItemStruct->rcItem; //rect of 53x57 ??
UINT state = lpDrawItemStruct->itemState;
hIcon = (HICON)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(i_iconeNormal)
DrawIconEx(*pDC,
0,
2,
(HICON)hIcon,
53,
53,
0, NULL, DI_NORMAL);
}
我的问题是绘制的图标质量不好,我不明白为什么
- 我的按钮大小为 35x35,矩形为 53x57
- 图标应该是哪个尺寸(比按钮小或大)
- 获得最佳绘制图标质量的方法是什么
希望能说清楚,提前感谢帮助。
【问题讨论】:
-
最好为按钮图像使用位图。
标签: button visual-c++ mfc visual-studio-2015 dialog