dialog中放一picture控件,给定图片路径,如何按指定大小将图片显示于picture中,谢谢!
解决方案 »
- vc出错类型
- CEdit 回车响应的问题(PreTranslateMessage),知道的进来!
- SendMessageTimeout(...)的执行过程是怎么样的?是怎么用的?
- VC 制作安装项目文件的路径问题
- 网络编程的问题
- 在class内声明的struct ,能用于在其他类中声明变量么?
- 用webbrowser时lpDispatch = m_pWebBrowser->GetDocument();lpDispatch为何返回的是空,代码是。。。
- 在VC中如何定义一个全局变量,应该注意些什么问题:如文件间的包含关系等
- capCaptureSequenceNoFile和capSetCallbackOnVideoStream怎么结合使用取得摄像头的视频流
- vc6能够用xml吗?具体如何呢?
- 请教一下,在VC6.0中有工程/setting/link下有一个ignore default libary,怎样在VC.net中
- 请问象foxmail那样可以收发hotmail邮件是如何实现的,提供相关资料也可。
BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop );
CDC dc=m_picture.getDC();
BITMAP bmp;
HBITMAP m_hDisplay= (HBITMAP)LoadImage(AfxGetInstanceHandle(),FileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION|LR_DEFAULTSIZE);
GetObject(m_hDisplay,sizeof(bmp),&bmp);
CDC MemDC;
MemDC.CreateCompatibleDC(NULL);
HBITMAP hold=(HBITMAP)MemDC.SelectObject(m_hDisplay);
dc.BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(hold);
DeleteDC(MemDC);
DeleteDC(dc);
CFileStatus fstatus;
CFile file;
LONG cb;
CRect r_Show;
HDC hdc;
m_Show.GetClientRect(r_Show);
int xpos=r_Show.left;
int ypos=r_Show.top;
int Widthpos=r_Show.Width();
int heightpos=r_Show.Height();
if (file.Open(m_PhotoPath,CFile::modeRead)&&file.GetStatus(m_PhotoPath,fstatus)&& ((cb = fstatus.m_size) != -1))
{
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);
LPVOID pvData = NULL;
if (hGlobal != NULL)
{
if ((pvData = GlobalLock(hGlobal)) != NULL)
{
file.ReadHuge(pvData, cb);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm); if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))
{
OLE_XSIZE_HIMETRIC hmWidth;
OLE_YSIZE_HIMETRIC hmHeight; pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight);
// double fX,fY;
// fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);
// fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);
// if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))
double fX,fY;
fX = r_Show.Width();//图片大小
fY = r_Show.Height();
hdc=::GetDC(m_Show.m_hWnd);
if(FAILED(pPic->Render(hdc,xpos,ypos,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))
AfxMessageBox("Failed To Render The picture!");
// pPic->Release();
}
else
AfxMessageBox("Error Loading Picture From Stream!");
}
}
GlobalFree(hGlobal);
}
else
AfxMessageBox("Can't Open Image File!");
CString FileName ="D:\\picture\\__allph.bmp";
HBITMAP m_hDisplay= (HBITMAP)LoadImage(AfxGetInstanceHandle(),FileName,IMAGE_BITMAP,rect.Width(),rect.Height(),LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_Picture.SetBitmap(m_hDisplay);
CString FileName ="D:\\picture\\__allph.bmp";
HBITMAP m_hDisplay= (HBITMAP)LoadImage(AfxGetInstanceHandle(),FileName,IMAGE_BITMAP,rect.Width(),rect.Height(),LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_Picture.SetBitmap(m_hDisplay);
CString FileName ="D:\\picture\\__allph.bmp";
HBITMAP m_hDisplay= (HBITMAP)LoadImage(AfxGetInstanceHandle(),FileName,IMAGE_BITMAP,rect.Width(),rect.Height(),LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_Picture.SetBitmap(m_hDisplay);
再用
GetDlgItem( IDC_PICTURE_1 )->MoveWindow( CRect( ...) );
不行吗?
再用
GetDlgItem( IDC_PICTURE_1 )->MoveWindow( CRect( ...) );
不行吗?
再用
GetDlgItem( IDC_PICTURE_1 )->MoveWindow( CRect( ...) );
不行吗?