MFC位图自适应Picture Control控件大小
2017-06-29 17:30
1606 查看
试了n个方法,查了n多资料。终于弄出来了~~~~
void CTestDlg::AddPitcure()
{
CBitmap bitmap;
//加载指定位图资源 Bmp图片ID
bitmap.LoadBitmap(IDB_BITMAP_MAIN);
//获取对话框上的句柄 图片控件ID
CStatic *p=(CStatic *)GetDlgItem(IDC_MAINMode);
//设置静态控件窗口风格为位图居中显示
p->ModifyStyle(0xf,SS_BITMAP|SS_CENTERIMAGE);
//将图片设置到Picture控件上
p->SetBitmap(bitmap);
BITMAP bmpInfo;
bitmap.GetBitmap(&bmpInfo);
CDC dcMemory;
CDC* pDC=GetDlgItem(IDC_MAINMode)->GetDC();
dcMemory.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMemory.SelectObject(&bitmap);
CRect rect;
m_Picture.GetClientRect(&rect);
int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;
//pDC->BitBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory, 0, 0, SRCCOPY);
pDC->SetStretchBltMode(COLORONCOLOR);
pDC->StretchBlt(0, 0,rect.Width(),rect.Height(),&dcMemory,0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight,SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
ReleaseDC(pDC);
}
void CTestDlg::AddPitcure()
{
CBitmap bitmap;
//加载指定位图资源 Bmp图片ID
bitmap.LoadBitmap(IDB_BITMAP_MAIN);
//获取对话框上的句柄 图片控件ID
CStatic *p=(CStatic *)GetDlgItem(IDC_MAINMode);
//设置静态控件窗口风格为位图居中显示
p->ModifyStyle(0xf,SS_BITMAP|SS_CENTERIMAGE);
//将图片设置到Picture控件上
p->SetBitmap(bitmap);
BITMAP bmpInfo;
bitmap.GetBitmap(&bmpInfo);
CDC dcMemory;
CDC* pDC=GetDlgItem(IDC_MAINMode)->GetDC();
dcMemory.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMemory.SelectObject(&bitmap);
CRect rect;
m_Picture.GetClientRect(&rect);
int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;
//pDC->BitBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory, 0, 0, SRCCOPY);
pDC->SetStretchBltMode(COLORONCOLOR);
pDC->StretchBlt(0, 0,rect.Width(),rect.Height(),&dcMemory,0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight,SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
ReleaseDC(pDC);
}
AddPitcure()放在OnPaint消息函数里面,且前面需加UpdateWindow();,不然添加的位图会显示不全。
相关文章推荐
- MFC怎么让图片适应picture control控件的大小
- MFC中Picture控件,将位图转换成任意大小再放入控件中
- 自适应MFC中的picture control 控件来显示文件路径中的图片
- MFC的图片控件的使用(图片适应控件大小并不失真)
- control picture 大小如何设定 mfc MFC中怎么通过程序改变Picture Control控件的大小
- 在Picture Control控件上显示JPG图片并让图片适应控件的大小
- MFC中怎么通过程序改变Picture Control控件的大小 设置合适的大小有助于图片不失真
- MFC对话框 picture控件添加位图,位图拉伸,适应picture
- C++ MFC控件随着窗口大小变化而自适应
- MFC Picture Control 自适应控件大小显示图片,失真和不失真
- MFC中怎么通过程序改变Picture Control控件的大小
- C++ MFC控件随着窗口大小变化而自适应
- MFC中怎样将位图写入指定的Picture控件中,两种方式:1 加载已有位图 2读取位图文件;另外CreateDIBitmap的用法和StretchDIBits用法举例
- [MFC] 控件大小跟随对话框大小比例变化 [转]
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- 在 MFC 框架中,有什么方法能直接将 OpenCV 2.0 库中 Mat 格式的图片传递到 Picture Control(图片控件)显示?
- MFC如何使控件大小随着对话框大小自动调整
- MFC窗口和控件大小等比例缩放
- MFC控件大小及控件字体跟随对话框的改变而改变
- vb6.0 控件适应窗口大小