📄 subject_20268.htm
字号:
<p>
序号:20268 发表者:不得已 发表日期:2002-11-05 09:23:33
<br>主题:关于HDC的问题
<br>内容:怎样把一个已知HDC中的BMP存到BYTE*中?<BR><BR>急!!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:CDMA2000 回复日期:2002-11-05 09:52:17
<br>内容:把位图写入一个BMP文件<BR>如果具有一个设备无关的位图句柄,把一个位图写入BMP文件非常简单:<BR>在位图内容之后写入BITMAPINFOHEADER信息即可。<BR>需要设置BITMAPINFOHEADER的三个成员是<BR>bfType,其值为"BM",<BR>bfSize,其值是位图的大小,<BR>以及,bfOffBits,其值为文件开始到位图位的偏移量。 <BR><BR>// WriteDIB - Writes a DIB to file<BR>// Returns - TRUE on success<BR>// szFile - Name of file to write to<BR>// hDIB - Handle of the DIB<BR>BOOL WriteDIB( LPTSTR szFile, HANDLE hDIB)<BR>{<BR> BITMAPFILEHEADER hdr;<BR> LPBITMAPINFOHEADER lpbi;<BR><BR> if (!hDIB)<BR> return FALSE;<BR><BR> CFile file;<BR> if( !file.Open( szFile, CFile::modeWrite|CFile::modeCreate) )<BR> return FALSE;<BR><BR> lpbi = (LPBITMAPINFOHEADER)hDIB;<BR><BR> int nColors = 1 << lpbi->biBitCount;<BR><BR> // Fill in the fields of the file header <BR> hdr.bfType= ((WORD) ('M' << 8) | 'B'); // is always "BM"<BR> hdr.bfSize=GlobalSize(hDIB) + sizeof( hdr ); <BR> hdr.bfReserved1=0;<BR> hdr.bfReserved2=0; <BR> hdr.bfOffBits=(DWORD) (sizeof( hdr ) + lpbi->biSize +nColors * sizeof(RGBQUAD));<BR><BR> // Write the file header <BR> file.Write( &hdr, sizeof(hdr) );<BR><BR> // Write the DIB header and the bits <BR> file.Write( lpbi, GlobalSize(hDIB) );<BR><BR> return TRUE;<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-11-05 10:11:10
<br>内容:谢谢CDMA2000,是这样的。我已经把一个在BYTE*中存在的BMP文件放入一个HDC中并显示到了一个窗口上面而且加入一些操作,现在我需要把这个在HDC中的BMP文件再次放回BYTE*中请问怎样操作。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:CDMA2000 回复日期:2002-11-05 10:17:58
<br>内容:那你在将BMP文件放入DC中时应该可以返回一个位图的临时指针啊<BR>利用该指针获得该位图的句柄(调用GetSafeHandle()),<BR>然后利用该句柄传递上面我给你的代码就可以保存了啊;<BR><BR>关键问题你先要得到位图的句柄!<BR>因为DC只是一个绘制环境!
<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-11-05 10:28:30
<br>内容:请问用API函数怎么得到位图的句柄?
<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>回复者:徐景周 回复日期:2002-11-05 10:29:32
<br>内容:参看下面最后:<BR>http://www.copathway.com/itbookreview/view_paper.asp?paper_id=363
<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 + -