📄 01_9_13_16.asp.html
字号:
dwDIBSize, dwWritten;</td></tr></table><table width=100% ><tr><td class=a14>
BITMAP Bitmap; </td></tr></table><table width=100% ><tr><td class=a14>
//位图属性结构</td></tr></table><table width=100% ><tr><td class=a14>
BITMAPFILEHEADER bmfHdr; </td></tr></table><table width=100% ><tr><td class=a14>
//位图文件头结构</td></tr></table><table width=100% ><tr><td class=a14>
BITMAPINFOHEADER bi; </td></tr></table><table width=100% ><tr><td class=a14>
//位图信息头结构 </td></tr></table><table width=100% ><tr><td class=a14>
LPBITMAPINFOHEADER lpbi; </td></tr></table><table width=100% ><tr><td class=a14>
//指向位图信息头结构</td></tr></table><table width=100% ><tr><td class=a14>
HANDLE fh, hDib, hPal,hOldPal=NULL;</td></tr></table><table width=100% ><tr><td class=a14>
//定义文件,分配内存句柄,调色板句柄</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
//计算位图文件每个像素所占字节数</td></tr></table><table width=100% ><tr><td class=a14>
hDC = CreateDC("DISPLAY",NULL,NULL,NULL);</td></tr></table><table width=100% ><tr><td class=a14>
iBits = GetDeviceCaps(hDC, BITSPIXEL) * </td></tr></table><table width=100% ><tr><td class=a14>
GetDeviceCaps(hDC, PLANES);</td></tr></table><table width=100% ><tr><td class=a14>
DeleteDC(hDC);</td></tr></table><table width=100% ><tr><td class=a14>
if (iBits 〈 = 1)</td></tr></table><table width=100% ><tr><td class=a14>
wBitCount = 1;</td></tr></table><table width=100% ><tr><td class=a14>
else if (iBits 〈 = 4)</td></tr></table><table width=100% ><tr><td class=a14>
wBitCount = 4;</td></tr></table><table width=100% ><tr><td class=a14>
else if (iBits 〈 = 8)</td></tr></table><table width=100% ><tr><td class=a14>
wBitCount = 8;</td></tr></table><table width=100% ><tr><td class=a14>
else if (iBits 〈 = 24)</td></tr></table><table width=100% ><tr><td class=a14>
wBitCount = 24;</td></tr></table><table width=100% ><tr><td class=a14>
//计算调色板大小</td></tr></table><table width=100% ><tr><td class=a14>
if (wBitCount 〈 = 8)</td></tr></table><table width=100% ><tr><td class=a14>
dwPaletteSize = (1 〈 〈 wBitCount) *</td></tr></table><table width=100% ><tr><td class=a14>
sizeof(RGBQUAD);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
//设置位图信息头结构</td></tr></table><table width=100% ><tr><td class=a14>
GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&Bitmap);</td></tr></table><table width=100% ><tr><td class=a14>
bi.biSize = sizeof(BITMAPINFOHEADER);</td></tr></table><table width=100% ><tr><td class=a14>
bi.biWidth = Bitmap.bmWidth;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biHeight = Bitmap.bmHeight;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biPlanes = 1;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biBitCount = wBitCount;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biCompression = BI_RGB;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biSizeImage = 0;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biXPelsPerMeter = 0;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biYPelsPerMeter = 0;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biClrUsed = 0;</td></tr></table><table width=100% ><tr><td class=a14>
bi.biClrImportant = 0;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
dwBmBitsSize = ((Bitmap.bmWidth *</td></tr></table><table width=100% ><tr><td class=a14>
wBitCount+31)/32)* 4</td></tr></table><table width=100% ><tr><td class=a14>
*Bitmap.bmHeight ;</td></tr></table><table width=100% ><tr><td class=a14>
//为位图内容分配内存</td></tr></table><table width=100% ><tr><td class=a14>
hDib = GlobalAlloc(GHND,dwBmBitsSize+</td></tr></table><table width=100% ><tr><td class=a14>
dwPaletteSize+sizeof(BITMAPINFOHEADER));</td></tr></table><table width=100% ><tr><td class=a14>
lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDib);</td></tr></table><table width=100% ><tr><td class=a14>
*lpbi = bi;</td></tr></table><table width=100% ><tr><td class=a14>
// 处理调色板 </td></tr></table><table width=100% ><tr><td class=a14>
hPal = GetStockObject(DEFAULT_PALETTE);</td></tr></table><table width=100% ><tr><td class=a14>
if (hPal)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
hDC = GetDC(NULL);</td></tr></table><table width=100% ><tr><td class=a14>
hOldPal = SelectPalette(hDC, hPal, FALSE);</td></tr></table><table width=100% ><tr><td class=a14>
RealizePalette(hDC);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
// 获取该调色板下新的像素值</td></tr></table><table width=100% ><tr><td class=a14>
GetDIBits(hDC, hBitmap, 0, (UINT) Bitmap.bmHeight,</td></tr></table><table width=100% ><tr><td class=a14>
(LPSTR)lpbi + sizeof(BITMAPINFOHEADER)</td></tr></table><table width=100% ><tr><td class=a14>
+dwPaletteSize,</td></tr></table><table width=100% ><tr><td class=a14>
(BITMAPINFOHEADER *)</td></tr></table><table width=100% ><tr><td class=a14>
lpbi, DIB_RGB_COLORS);</td></tr></table><table width=100% ><tr><td class=a14>
//恢复调色板 </td></tr></table><table width=100% ><tr><td class=a14>
if (hOldPal)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
SelectPalette(hDC, hOldPal, TRUE);</td></tr></table><table width=100% ><tr><td class=a14>
RealizePalette(hDC);</td></tr></table><table width=100% ><tr><td class=a14>
ReleaseDC(NULL, hDC);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
//创建位图文件 </td></tr></table><table width=100% ><tr><td class=a14>
fh = CreateFile(lpFileName, GENERIC_WRITE, </td></tr></table><table width=100% ><tr><td class=a14>
0, NULL, CREATE_ALWAYS,</td></tr></table><table width=100% ><tr><td class=a14>
FILE_ATTRIBUTE_NORMAL | FILE_</td></tr></table><table width=100% ><tr><td class=a14>
FLAG_SEQUENTIAL_SCAN, NULL);</td></tr></table><table width=100% ><tr><td class=a14>
if (fh == INVALID_HANDLE_VALUE)</td></tr></table><table width=100% ><tr><td class=a14>
return FALSE;</td></tr></table><table width=100% ><tr><td class=a14>
// 设置位图文件头</td></tr></table><table width=100% ><tr><td class=a14>
bmfHdr.bfType = 0x4D42; // "BM"</td></tr></table><table width=100% ><tr><td class=a14>
dwDIBSize = sizeof(BITMAPFILEHEADER) </td></tr></table><table width=100% ><tr><td class=a14>
+ sizeof(BITMAPINFOHEADER)</td></tr></table><table width=100% ><tr><td class=a14>
+ dwPaletteSize + dwBmBitsSize; </td></tr></table><table width=100% ><tr><td class=a14>
bmfHdr.bfSize = dwDIBSize;</td></tr></table><table width=100% ><tr><td class=a14>
bmfHdr.bfReserved1 = 0;</td></tr></table><table width=100% ><tr><td class=a14>
bmfHdr.bfReserved2 = 0;</td></tr></table><table width=100% ><tr><td class=a14>
bmfHdr.bfOffBits = (DWORD)sizeof</td></tr></table><table width=100% ><tr><td class=a14>
(BITMAPFILEHEADER) </td></tr></table><table width=100% ><tr><td class=a14>
+ (DWORD)sizeof(BITMAPINFOHEADER)</td></tr></table><table width=100% ><tr><td class=a14>
+ dwPaletteSize;</td></tr></table><table width=100% ><tr><td class=a14>
// 写入位图文件头</td></tr></table><table width=100% ><tr><td class=a14>
WriteFile(fh, (LPSTR)&bmfHdr, sizeof</td></tr></table><table width=100% ><tr><td class=a14>
(BITMAPFILEHEADER), &dwWritten, NULL);</td></tr></table><table width=100% ><tr><td class=a14>
// 写入位图文件其余内容</td></tr></table><table width=100% ><tr><td class=a14>
WriteFile(fh, (LPSTR)lpbi, dwDIBSize, </td></tr></table><table width=100% ><tr><td class=a14>
&dwWritten, NULL);</td></tr></table><table width=100% ><tr><td class=a14>
//清除 </td></tr></table><table width=100% ><tr><td class=a14>
GlobalUnlock(hDib);</td></tr></table><table width=100% ><tr><td class=a14>
GlobalFree(hDib);</td></tr></table><table width=100% ><tr><td class=a14>
CloseHandle(fh);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr>
</table><br>
<style>.a1{font-size:1}</style>
<table width=100% ><tr><td align=right>(网页编辑:<a href='mailto:liu_yang@ccw.com.cn'>风之翼</a>)</td></tr></table>
</td><td class=a1 bgcolor=#f46240> </td>
<td valign=top width=138 align=right><table width=98% ><tr><td>
<form action='/app/gsearch1.asp' name=pdn><table width=100% ><tr><td>应用与方案
频道全文检索</td></tr>
<tr><td><input type="text" name="textfile" size=15 value=频道内检索 onfocus="this.value=''">
<input border=0 src="../../../../../images/jian.gif" name="I1" type="image" align=absmiddle>
</td></tr>
</table>
</form>
<form name=srch action="/search/which.asp" method=post onsubmit="JavaScript:return chk()">
<table width=100% >
<tr><td><select size="1" name="func">
<option selected value="2">主题检索</option>
<option value="1">周报全文检索</option>
<option value="3">模糊词检索</option>
</select></td></tr>
<tr><td><input type="text" name="SrchStr" size=15 value="输入待检索的词"
onfocus="this.value=''">
<input src="../../../../../images/jian.gif" name="I1" type="image" align="absMiddle" border=0>
</td></tr>
</table>
<script language="JavaScript">
function chk()
{if (!document.srch.SrchStr.value){
alert("请输入需检索的词!");
document.srch.SrchStr.focus();
return false;
}
else{if (document.srch.SrchStr.value.length>30){
alert("检索的词请不要超过30个字符!");
document.srch.SrchStr.focus();
return false;
}
}
}
</script></form>
<table width=100% ><tr><td class=f colspan=2><b>相关文章</b></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_13_15.asp.html'>用VC++6.0制作图片屏幕保护程序</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_13_13.asp.html'>创建不在任务条中显示窗口按钮的应用</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_13_12.asp.html'>在工具条上放置窗口及其它</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_13_11.asp.html'>得到托盘区位置与动态显示/隐藏窗口</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_13_10.asp.html'>MFC窗口位置管理详细分析及实例</a></td></tr>
</table>
</td></tr></table></td></tr></table><br>
<table align=center width=680><tr><td align=right>
<form name=mail method=post action='/pub/subMail.asp' onsubmit='JavaScript: return chkField(this)'>
<INPUT type='hidden' name='rec' value='24105'>
您的姓名:<INPUT type="text" name=myName size=10>
您朋友的E-mail:<INPUT type="text" name=friendMail size=10>
<INPUT type="submit" value="推荐给好友">
</form>
</td></tr>
<tr><td align=right>
<b>[<a href="javascript:window.close()">关闭窗口</a>]</b>
</td></tr>
</table>
<script language="javascript">
function chkField(fmObj)
{if (!fmObj.friendMail.value){
alert("请输入您朋友的E-mail!");
fmObj.friendMail.focus();
return false;
}
return true;
}
</script>
<table align=center width=680>
<tr><td><hr size=1 width=660 color=#f46240></td></tr>
</table><br>
<p align=center>Copyright(C) ccw.com.cn,All rights reserved</p>
<p align=center><b>中国计算机世界出版服务公司版权所有</b></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -