12577.html
来自「VB技巧问答10000例,是一个教程」· HTML 代码 · 共 23 行
HTML
23 行
<html>
<head>
<title>用一堆API的做法</title>
</head>
<body bgcolor="#FFFFFF" vlink="#808080">
<center>
<h1>用一堆API的做法</h1>
</center>
<hr size=7 width=75%>
<hr size=7 width=75%><p>
Posted by <a href="mailto:cww5@mail.ncku.edu.tw">cww</a> on May 03, 1999 at 16:32:50:<p>
In Reply to: <a href="12570.html">如何存bmp档</a> posted by chjichin on May 03, 1999 at 12:30:55:<p>
我用一个例子来说,如果是一个8*8的bitmap如下<br>01010101 -->&h55<br>10101010 -->&hAA<br>01010101 -->&h55<br>10101010 -->&hAA<br>01010101 -->&h55<br>10101010 -->&hAA<br>01010101 -->&h55<br>10101010 -->&hAA<br>那我会用CreateBitmap来产生一个hBitmap,注意是,<br>虽是8*8的图,但是,一个row的大小必需是16的倍数(如果<br>我没有错),所以,要想像成是16*8的图,也就是第一个<br>row是&h5500, 第二个Row是&hAA00 以此类推<br>而后产生一个memoryDC,再把hBitmap与hmemDc结合起来<br>最后再用BitBlt将之画到PictureBox上,程式如下:<br>至于说如何存档(只存这8*8)又是另一个讨厌的工作,可以<br>查一下http://sunh.hosp.ncccku.edu.tw/~cww 中绘图<br>的部份。<p> dim bybits(1 To 16) As Byte <br> Dim ary<br> Dim i As Long,hMemDc as Long , hBitmap as Long <br> ary = Array(&H55, &H0, &HAA, &H0, _<br> &H55, &H0, &HAA, &H0, _<br> &H55, &H0, &HAA, &H0, _<br> &H55, &H0, &HAA, &H0)<br> For i = 1 To 16<br> bybits(i) = ary(i - 1)<br> Next i<br> hBitmap = CreateBitmap(8, 8, 1, 1, bybits(1))'产生单色8*8的Bitmap图<br> hMemDc = CreateCompatibleDC(0) '产生Memory DC<br> Call SelectObject(hMemDc, hBitmap) <br> Picture1.ForeColor = RGB(0, 0, 0)<br> Picture1.BackColor = RGB(255, 255, 255)<br> Picture1.ScaleMode = 3<br> BitBlt Picture1.hdc, 0, 0, 8, 8, hMemDc, 0, 0, vbSrcCopy<br> DeleteDC hMemDc<br> DeleteObject hBitmap<br>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 12577-->
</ul><!--end: 12577-->
<br><hr size=7 width=75%><p>
</body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?