| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 700 人关注过本帖
标题:[求助]数字图像问题
只看楼主 加入收藏
lundon
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-5-7
收藏
 问题点数:0 回复次数:4 
[求助]数字图像问题


void CWallDlg::show(int x,int y)
{//x,y,分别为输出的X和Y座标,利用StretchBlt()来作图
if(!m_hBitmap)
return;
CBitmap m_bmp;
m_bmp.Attach(m_hBitmap);
BITMAP bm;
m_bmp.GetObject(sizeof(BITMAP),&bm);
CDC* pDC=GetDC();
CRect rc;
int nWidth,nHeight,nX=0,nY=0;
nWidth=bm.bmWidth;
nHeight=bm.bmHeight;
CDC dcMem;//创建内存设备环境
dcMem.CreateCompatibleDC(pDC);
CBitmap* pOldbmp=dcMem.SelectObject(&m_bmp);//选入内存设备环境
pDC->StretchBlt(x,y,30,30,&dcMem,0,0,nWidth,nHeight,SRCCOPY);
dcMem.SelectObject(pOldbmp);//恢复原来的内存设备环境
}

void CWallDlg::OnButton1()
{
// TODO: Add your control notification handler code here
int xx;
for(int i=0;i<10;i++)
{
xx=i*30;
show(xx,0);
}
}


为什么不能连续输出图的呀!!!
怎样改正?
搜索更多相关主题的帖子: 内存 图像 pDC 数字 bmp 
2006-05-17 12:36
lundon
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-5-7
收藏
得分:0 
它只能显示出一张图,而图存在初始中
// TODO: Add extra initialization here
ShowWindow(SW_SHOWMAXIMIZED); // 最大化窗口
const CString ImageName=_T("墙.bmp");
//以下把BMP文件调入m_hBitmap中
m_hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
ImageName/*dlg.GetPathName()*/,IMAGE_BITMAP,0,0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION/*LR_LOADFROMFILE|LR_CREATEDIBSECTION*/);

还想好好学习
2006-05-17 12:45
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
不要在窗口得消息响应函数中进行连续拷贝图片的工作,你把下面语句
int xx;
for(int i=0;i<10;i++)
{
xx=i*30;
show(xx,0);
}
放到独立线程中就行了

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-17 15:29
lundon
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-5-7
收藏
得分:0 
我把它CBitmap m_bmp定义在类中;
把这个m_bmp.Attach(m_hBitmap);放在初始化中
结果也可输出了多个图了

线程不会用呀~~~~~~~~~~

还想好好学习
2006-05-18 17:25
lundon
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-5-7
收藏
得分:0 
新的方法是把图放到资源中

void CWallDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CDC* pDC = this->GetDC();
CBitmap bitmap;
CDC dcMemory;
bitmap.LoadBitmap(IDB_BITMAP1);//图的ID号
dcMemory.CreateCompatibleDC(pDC);
dcMemory.SelectObject(&bitmap);
for(int i=0;i<10;i++)
{
pDC->BitBlt(30*i,0,30,30,&dcMemory,0,0,SRCCOPY);
}
}

还想好好学习
2006-05-20 10:21
快速回复:[求助]数字图像问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014633 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved