请教,各位大虾请进

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);
}
...全文
75 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaolunyuan 2003-05-24
  • 打赏
  • 举报
回复
帮 up

19,472

社区成员

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

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