【发布时间】:2015-05-04 16:00:31
【问题描述】:
我正在为我的 MFC 应用程序创建位图。我的桌面设置为 96dpi,我正在尝试填充 29x25 位图按钮。我们使用的示例位图大小为 42x40。当叠加到我们的按钮上时,图像看起来不像我预期的那样清晰明快。
作为一个例子,这是我正在使用的代码:
CBitmapButton::DrawItem(lpDIS);
CDC *dcMem, *pdcBmp;
// Get the DC for the Base Bitmap
dcMem = CDC::FromHandle(lpDIS->hDC);
pdcBmp = new CDC();
pdcBmp->CreateCompatibleDC(dcMem);
DrawOverlay(&selectedBmp, pdcBmp, dcMem); //selected bmp is a class variable
void OverlayButton::DrawOverlay(CBitmap *bmp, CDC *pdcBmp, CDC *dcMem)
{
BITMAP bitmapInfo;
bmp->GetBitmap(&bitmapInfo);
pdcBmp->SelectObject(bmp);
dcMem->TransparentBlt(0, 0, bitmapInfo.bmWidth, bitmapInfo.bmHeight,
pdcBmp, 0, 0, bitmapInfo.bmWidth, bitmapInfo.bmHeight,
RGB(192, 192, 192));
}
所以我的问题是: 如何确定位图或按钮的正确大小以适应位图而不拉伸和可能丢失细节?
如果我有一个 32x32 位图,它如何与 96dpi 的 VS 中的窗口单位相对应?
【问题讨论】:
-
你目前卡在哪里了?什么为您解决了这个问题?
标签: visual-studio bitmap mfc dpi