如何获得当前窗口显示图片的句柄呢? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先得到DC,然后pDC->m_hDC得到图片DC的句炳,不知是不是这个意思。 这是我OnDraw的代码:CFile file(strFilePathName,CFile::modeRead|CFile::shareDenyWrite); CArchive ar(&file,CArchive::load|CArchive::bNoFlushOnDelete); CArchiveStream stream(&ar); HRESULT hr = OleLoadPicture((IStream*)&stream, 0, FALSE, IID_IPicture, (void **)&m_pPic); file.Close(); CRect ShowRect; pDC=GetDC(); GetClientRect(&ShowRect); long lWidth,lHeight; m_pPic->get_Width((OLE_XSIZE_HIMETRIC*)&lWidth); m_pPic->get_Height((OLE_YSIZE_HIMETRIC*)&lHeight); CDC tempDC; tempDC.CreateCompatibleDC(pDC); CBitmap bmp; bmp.CreateCompatibleBitmap(pDC,ShowRect.Width(),ShowRect.Height()); CBitmap *OldBmp=tempDC.SelectObject(&bmp); m_pPic->Render(tempDC, 0, 0, ShowRect.Width(), ShowRect.Height(), 0, lHeight, lWidth, -lHeight, NULL); m_pPic->Release(); pDC->BitBlt(ShowRect.left, ShowRect.top, ShowRect.Width(), ShowRect.Height(), &tempDC, 0, 0, SRCCOPY); tempDC.SelectObject(OldBmp); ReleaseDC(&tempDC); bmp.DeleteObject(); ReleaseDC(pDC);现在假如我要在别的函数中取得这个图片的句柄或路径应怎样做呢? 把这个保存起来不要DeleteObject()就可以了:CBitmap bmp;要句柄时:return bmp.GetSafeHandle(); CBitmap bmp;定义成类成员,在类的析构里面释放 那我要在别的函数中调用应该怎么做呢?比如说我有个Save(char* filename,imagetype)函数,我应该怎样通过句柄而获得图片的路径呢? 请问如何循环查找窗口句柄 为什么DEBUG下的EXE一闪而过 如何将VC6的工程直接转到VS2005 如何得到模式对话框的句柄,我要向它发消息? 我的第一次——散分 请给指教 delete一个 CWnd* 问题 请问我这样向clistctrl加图标为什么不行啊,不够再加100分。 请教~驱动内如何取进程是否是SYSTEM进程 如何确认文档类里的数据是否被修改过? 请问怎样获取列表视图LIST BOX被多项选中的条目,一次同时选择几个条目 关于WIN API滚动条的问题
CFile file(strFilePathName,CFile::modeRead|CFile::shareDenyWrite);
CArchive ar(&file,CArchive::load|CArchive::bNoFlushOnDelete);
CArchiveStream stream(&ar);
HRESULT hr = OleLoadPicture((IStream*)&stream, 0, FALSE, IID_IPicture, (void **)&m_pPic); file.Close(); CRect ShowRect;
pDC=GetDC();
GetClientRect(&ShowRect);
long lWidth,lHeight; m_pPic->get_Width((OLE_XSIZE_HIMETRIC*)&lWidth);
m_pPic->get_Height((OLE_YSIZE_HIMETRIC*)&lHeight);
CDC tempDC;
tempDC.CreateCompatibleDC(pDC);
CBitmap bmp; bmp.CreateCompatibleBitmap(pDC,ShowRect.Width(),ShowRect.Height());
CBitmap *OldBmp=tempDC.SelectObject(&bmp);
m_pPic->Render(tempDC, 0, 0, ShowRect.Width(), ShowRect.Height(),
0, lHeight, lWidth, -lHeight, NULL);
m_pPic->Release(); pDC->BitBlt(ShowRect.left, ShowRect.top, ShowRect.Width(), ShowRect.Height(), &tempDC, 0, 0, SRCCOPY);
tempDC.SelectObject(OldBmp);
ReleaseDC(&tempDC);
bmp.DeleteObject();
ReleaseDC(pDC);现在假如我要在别的函数中取得这个图片的句柄或路径应怎样做呢?
CBitmap bmp;要句柄时:
return bmp.GetSafeHandle();