最近使用gdi+把jpg图片显示在picture control上,使用了双缓冲技术,为什么移动窗口很卡
代码如下
CDialog::UpdateWindow();
//CPaintDC dc(this->GetDlgItem(IDC_STATIC));
CPaintDC dc(this->GetDlgItem(IDC_STATIC));
// Graphics mGraphics(dc.GetSafeHdc() );
// CPaintDC dc(this);
Image img( (const WCHAR*)strFileName,FALSE );
CRect rcClient;
m_picture = (CStatic*)this->GetDlgItem(IDC_STATIC);
//GetClientRect( &rcClient );
m_picture->GetClientRect(&rcClient);
Bitmap memBitmap(rcClient.right,rcClient.bottom);
Graphics mGraphics(&memBitmap);
BOOL bWidth = rcClient.Width() / img.GetWidth() > rcClient.Height() / img.GetHeight();
if (bWidth)
{
mGraphics.DrawImage( &img, 0, 0, rcClient.Width(), rcClient.Width() * img.GetHeight() / img.GetWidth());
}
else
{
mGraphics.DrawImage(&img, 0, 0, rcClient.Height() * img.GetWidth() / img.GetHeight(), rcClient.Height());
}
Graphics gr(dc.GetSafeHdc());
gr.DrawImage(&memBitmap,0,0);
//::ReleaseDC(m_hWnd,dc);
//dc.DeleteDC();gdi+图片技术移动
代码如下
CDialog::UpdateWindow();
//CPaintDC dc(this->GetDlgItem(IDC_STATIC));
CPaintDC dc(this->GetDlgItem(IDC_STATIC));
// Graphics mGraphics(dc.GetSafeHdc() );
// CPaintDC dc(this);
Image img( (const WCHAR*)strFileName,FALSE );
CRect rcClient;
m_picture = (CStatic*)this->GetDlgItem(IDC_STATIC);
//GetClientRect( &rcClient );
m_picture->GetClientRect(&rcClient);
Bitmap memBitmap(rcClient.right,rcClient.bottom);
Graphics mGraphics(&memBitmap);
BOOL bWidth = rcClient.Width() / img.GetWidth() > rcClient.Height() / img.GetHeight();
if (bWidth)
{
mGraphics.DrawImage( &img, 0, 0, rcClient.Width(), rcClient.Width() * img.GetHeight() / img.GetWidth());
}
else
{
mGraphics.DrawImage(&img, 0, 0, rcClient.Height() * img.GetWidth() / img.GetHeight(), rcClient.Height());
}
Graphics gr(dc.GetSafeHdc());
gr.DrawImage(&memBitmap,0,0);
//::ReleaseDC(m_hWnd,dc);
//dc.DeleteDC();gdi+图片技术移动
解决方案 »
- 请问如何实现“打开目标文件夹”的功能???
- 用Setlayeredwindowattributes获得透明窗口后刷新问题
- 如何给按钮同时添加文字和图片
- 数据库服务器运行过程中弹出runtime error,请问这是怎么回事?
- 毕业就业,想请大家给个建议(兴唐VS启明星辰)
- 我用LineTo画线,如何改变线的颜色啊
- 如何在list control中不用点击鼠标左键和键盘放向键而高亮度选中项目?
- 关于读写exe文件的问题(快要气死我;了)
- error C2059: syntax error : 'constant'error C2238: unexpected token(s) preceding
- 请教:recordset->Close();关闭出错?
- CFileDialog的问题
- 大家有没有好一点的比较两个文件是否相同的想法呢?
前几天刚做了个画窗口背景的,可以参考。
http://blog.csdn.net/ananluowei/article/details/12081401