关于 CImage::StretchBlt的疑问,先谢过了!

changyanseu 2010-06-15 09:41:32
最近做个CCD图像实时显示到对话框控件上的小程序
用到 CImage::StretchBlt显示
CImage m_Image[2]; // display image

CPaintDC dc(&m_PicView);
CRect PaintRect;
m_PicView.GetClientRect(&PaintRect);
dc.SetStretchBltMode(HALFTONE);

/* acquire lock for the time we access the image object */
WaitForSingleObject(m_ImageSwitchMutex,INFINITE);
/* paint image object when initialized */
if( !m_Image[m_nDisplayImageIndex].IsNull() )
{
m_Image[m_nDisplayImageIndex].StretchBlt(dc.m_hDC,PaintRect);
}
/* release lock */
ReleaseMutex(m_ImageSwitchMutex);

……
这里用到的StretchBlt原型是
BOOL StretchBlt( HDC hDestDC, const RECT& rectDest, DWORD dwROP = SRCCOPY ) const throw();
还有个重载函数
BOOL StretchBlt( HDC hDestDC, const RECT& rectDest, const RECT& rectSrc,DWORD dwROP = SRCCOPY ) const throw();

这里的rectSrc说的是A reference to a RECT structure, identifying the source.
那这个rectSrc是不是指的是我这个源图像所占的矩形呢,如果这样的话,也就意味着可以很方便的选取CCD图像的任一部分显示到指定的对话框控件上了,到底能不能呢?困惑中……
...全文
580 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
changyanseu 2010-06-16
  • 打赏
  • 举报
回复
嗯,谢谢你的回复,明天我就做个试验看看!!!
liudafei1 2010-06-16
  • 打赏
  • 举报
回复
能哈,rectSrc就是指的相对于源DC中坐标系,你要画一部分很容易,你只要指定源dc中rectSrc成你想要画的部分就行了
changyanseu 2010-06-15
  • 打赏
  • 举报
回复
自己顶一下,希望高手看到!

19,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧