⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_15331.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:15331 发表者:行者 发表日期:2002-09-17 15:27:59
<br>主题:寻找能够显示各种类型jpg,bmp,icon,gif图片信息的源码?
<br>内容:email:quark-c@163.com
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:徐景周 回复日期:2002-09-17 15:38:13
<br>内容:可用IPicture来实现读取和显示,保存各种格式不行。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浩公 回复日期:2002-09-17 16:53:43
<br>内容:我找到一个实现IPicture的类库,要的话发信 haogong@etang.com
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Jans 回复日期:2002-09-17 17:32:36
<br>内容:很简单<BR><BR>LPPICTURE gpPicture;<BR>HWND ghWnd;<BR>#define HIMETRIC_INCH&nbsp;&nbsp;&nbsp;&nbsp;2540<BR>void&nbsp;&nbsp;&nbsp;&nbsp;LoadPictureFile(LPCTSTR szFile);<BR>void&nbsp;&nbsp;&nbsp;&nbsp;ShowPicFile(HDC hdc,int x,int y,const RECT& rc);<BR><BR>void LoadPictureFile(LPCTSTR szFile)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// open file<BR>&nbsp;&nbsp;&nbsp;&nbsp;HANDLE hFile = CreateFile(szFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;_ASSERTE(INVALID_HANDLE_VALUE != hFile);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// get file size<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD dwFileSize = GetFileSize(hFile, NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;_ASSERTE(-1 != dwFileSize);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;LPVOID pvData = NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;// alloc memory based on file size<BR>&nbsp;&nbsp;&nbsp;&nbsp;HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);<BR>&nbsp;&nbsp;&nbsp;&nbsp;_ASSERTE(NULL != hGlobal);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;pvData = GlobalLock(hGlobal);<BR>&nbsp;&nbsp;&nbsp;&nbsp;_ASSERTE(NULL != pvData);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD dwBytesRead = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;// read file and store in global memory<BR>&nbsp;&nbsp;&nbsp;&nbsp;BOOL bRead = ReadFile(hFile, pvData, dwFileSize, &dwBytesRead, NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;_ASSERTE(FALSE != bRead);<BR>&nbsp;&nbsp;&nbsp;&nbsp;GlobalUnlock(hGlobal);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(hFile);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;LPSTREAM pstm = NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;// create IStream* from global memory<BR>&nbsp;&nbsp;&nbsp;&nbsp;HRESULT hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pstm);<BR>&nbsp;&nbsp;&nbsp;&nbsp;_ASSERTE(SUCCEEDED(hr) && pstm);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// Create IPicture from image file<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (gpPicture)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gpPicture-&gt;Release();<BR>&nbsp;&nbsp;&nbsp;&nbsp;hr = ::OleLoadPicture(pstm, dwFileSize, FALSE, IID_IPicture, (LPVOID *)&gpPicture);<BR>&nbsp;&nbsp;&nbsp;&nbsp;_ASSERTE(SUCCEEDED(hr) && gpPicture);&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;pstm-&gt;Release();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;InvalidateRect(ghWnd, NULL, TRUE);<BR>}<BR><BR><BR>void ShowPicFile(HDC hdc,int x,int y,const RECT& rc)<BR>{<BR>if (gpPicture)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// get width and height of picture<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long hmWidth;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long hmHeight;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gpPicture-&gt;get_Width(&hmWidth);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gpPicture-&gt;get_Height(&hmHeight);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// convert himetric to pixels<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int nWidth&nbsp;&nbsp;&nbsp;&nbsp;= MulDiv(hmWidth, GetDeviceCaps(hdc, LOGPIXELSX), HIMETRIC_INCH);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int nHeight&nbsp;&nbsp;&nbsp;&nbsp;= MulDiv(hmHeight, GetDeviceCaps(hdc, LOGPIXELSY), HIMETRIC_INCH);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// display picture using IPicture::Render<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gpPicture-&gt;Render(hdc, x, y, nWidth, nHeight, 0, hmHeight, hmWidth, -hmHeight, &rc);<BR>}<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:行者 回复日期:2002-09-19 14:33:01
<br>内容:另:<BR>如何得到颜色的位数?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -