19,469
社区成员
发帖
与我相关
我的任务
分享
void CUdp_transport_svrDlg::showPic()
{
IStream *m_pStream;
IPicture *m_pPictrue;
OLE_XSIZE_HIMETRIC m_JPGWidth;
OLE_YSIZE_HIMETRIC m_JPGHeight;
HGLOBAL hMem;
CFile file;
if (!file.Open("a.jpg",CFile::modeReadWrite))
{
MessageBox("open file failed!");
}
DWORD len=file.GetLength();
hMem=GlobalAlloc(GMEM_MOVEABLE,len);
LPVOID pData=NULL;
pData=GlobalLock(hMem);
file.ReadHuge(pData,len);
file.Close();
GlobalUnlock(hMem);
CreateStreamOnHGlobal(hMem,TRUE,&m_pStream);
OleLoadPicture(m_pStream,len,TRUE,IID_IPicture,(LPVOID*)&m_pPictrue);
m_pPictrue->get_Height(&m_JPGHeight);
m_pPictrue->get_Width(&m_JPGWidth);
CRect lpRec;
GetDlgItem(IDC_STATIC1)->GetWindowRect(&lpRec);
ScreenToClient(&lpRec);
m_pPictrue->Render(GetDC()->m_hDC,lpRec.left,lpRec.top,(int)(m_JPGWidth/26.45),(int)(m_JPGHeight/26.45),0,m_JPGHeight,m_JPGWidth,-m_JPGHeight,NULL);
}
LRESULT CMonitorDlg::OnRender(WPARAM wParam, LPARAM lParam)
{
DWORD dwLen = m_pComRec->m_nFrameSize;
BYTE* lpFrame = m_pComRec->m_buffFrame;
HGLOBAL hMem = GlobalAlloc(GMEM_FIXED, dwLen);
BYTE* pMem = (BYTE*)GlobalLock(hMem);
memcpy(pMem, lpFrame, dwLen);
IStream* pIStm;
CreateStreamOnHGlobal(hMem, FALSE, &pIStm);
m_picFrame.Load(pIStm);
GlobalUnlock(hMem);
pIStm->Release();
Invalidate();
m_pComRec->Send("go on", 5);
return 1;
}
void showpic(BYTE* pMemData, DWORD len)
{
IStream *m_pStream;
IPicture *m_pPictrue;
OLE_XSIZE_HIMETRIC m_JPGWidth;
OLE_YSIZE_HIMETRIC m_JPGHeight;
HGLOBAL hMem;
hMem=GlobalAlloc(GMEM_MOVEABLE,len);
LPVOID pData=NULL;
pData=GlobalLock(hMem);
memcpy(pData, pMemData, len);
GlobalUnlock(hMem);
CreateStreamOnHGlobal(hMem,TRUE,&m_pStream);
OleLoadPicture(m_pStream,len,TRUE,IID_IPicture,(LPVOID*)&m_pPictrue);
m_pPictrue->get_Height(&m_JPGHeight);
m_pPictrue->get_Width(&m_JPGWidth);
CRect lpRec;
GetDlgItem(IDC_STATIC1)->GetWindowRect(&lpRec);
ScreenToClient(&lpRec);
m_pPictrue->Render(GetDC()->m_hDC,lpRec.left,lpRec.top
,(int)(m_JPGWidth/26.45), (int)(m_JPGHeight/26.45)
,0 ,m_JPGHeight, m_JPGWidth,-m_JPGHeight,NULL);
}