VC++ 完整地从文件中读取位图到控件
TUSEN 2008-08-03 10:05:26 各位高手大家好:
我在网上看到了一个读取位图的例子
代码如下:
hwnd = GetDlgItem(IDC_BMP_AREA);//IDC_BMP_ARE是对话框上的static控件ID hwnd是Cwnd指针
hDesDC = hwnd->GetDC()->m_hDC;//得到位图区域的DC句柄
hSrcDC = CreateCompatibleDC(hDesDC);//得到与位图区域的DC句柄相关的内存DC句柄
hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),filePath,\
IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//返回图片句柄
//0.0 uses the actual resource width.
GetObject(hBitmap, sizeof BITMAP, &bm);//填充位图到BITMAP对象bm中
SelectObject(hSrcDC, hBitmap);//把位图句柄选择到内存DC中
hwnd->GetClientRect(&rect);//得到窗口客户区(绘图区域)的客户区坐标//0,0,w,h
::SetStretchBltMode(hDesDC,COLORONCOLOR);
::StretchBlt(hDesDC, rect.left, rect.top, rect.right, \
rect.bottom, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,SRCCOPY);
结果能运行 只是我生成的位图数据不是和static控件的宽高等比例的
也就是说位图存在着压缩或者损失
我想请教下大家:
等比例的显示位图的是什么函数?也就是把位图等比例的缩放到static控件中,无论这样以来static控件里面有无空白区域..