请教,各位大虾请进

bjghm 2003-05-24 12:16:01

各位大虾,我怎样从内存里取出一个点的像素值(bmp,这一点在屏幕外面)?
我是这样打开bmp图的
//打开
CFileDialog dlg(TRUE);
dlg.m_ofn.lpstrFilter = "bmp文件(*.bmp)\0*.bmp\0\0";

dlg.m_ofn.lpstrTitle = "打开";
dlg.m_ofn.lpstrDefExt = "bmp";
if(IDOK == dlg.DoModal())
{
m_szFileName = dlg.GetPathName();
}

HBITMAP hBmp = (HBITMAP)LoadImage(::AfxGetInstanceHandle( ),
(LPCTSTR)m_szFileName, IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE|LR_CREATEDIBSECTION);

if(!hBmp)
{
MessageBox("ERROR: 文件未载入");
return;
}

if ( m_cBmp.m_hObject != NULL )
m_cBmp.Detach();
if(!m_cBmp.Attach(hBmp))
{
MessageBox("ERROR: 图象不能加载");
return;
}

// BITMAP bmp;
m_cBmp.GetBitmap(&bmp);
m_screenSize = CSize(bmp.bmWidth, bmp.bmHeight);
SetScrollSizes(MM_TEXT,m_screenSize); //设置滚动范围

//显示:
if(m_cBmp.m_hObject!=NULL)
{
// Get the size of the bitmap
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);

BITMAP bmpInfo;
m_cBmp.GetBitmap(&bmpInfo);
CBitmap* pOldBitmap = dcMemory.SelectObject(&m_cBmp);

// pDC->BitBlt(0, 0, ( 904-465 ), ( 223-154 ), &dcMemory,
// 465, 154, SRCCOPY);


pDC->BitBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
0, 0, SRCCOPY);

dcMemory.SelectObject(pOldBitmap);
}
...全文
49 1 点赞 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shaolunyuan 2003-05-24
帮 up
  • 打赏
  • 举报
回复
相关推荐
发帖
图形处理/算法
创建于2007-09-28

1.9w+

社区成员

VC/MFC 图形处理/算法
申请成为版主
帖子事件
创建了帖子
2003-05-24 12:16
社区公告
暂无公告