📄 book_text17.htm
字号:
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-pagination: none; mso-layout-grid-align: none; punctuation-wrap: simple; mso-outline-level: 1"><B
style="mso-bidi-font-weight: normal"><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">Windows</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">位图显示的必要条件:</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'"><O:P>
</O:P></SPAN></B></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; TEXT-INDENT: 20pt; mso-line-height-alt: 1.3pt; mso-pagination: none; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">我们分析一下一个</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">Windows
API</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">函数:</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'"><O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-pagination: none; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">int
SetDIBitsToDevice(hdc,uXDest</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">uYDest</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">uWidth</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">uHeight</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">uXSrc</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">uYSre</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,<SPAN
lang=EN-US><O:P> </O:P></SPAN></SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 3cm; WORD-BREAK: break-all; TEXT-INDENT: 1cm; mso-line-height-alt: 1.3pt; mso-pagination: none; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">uStartScan</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">cScanLines</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">lpvBits</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">lpbmi</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'; mso-shading: white; mso-pattern: gray-15 auto">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 auto">fuColorUse)<O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; TEXT-INDENT: 20pt; mso-line-height-alt: 1.3pt; mso-pagination: none; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">请查看这个函数的第十、十一个参数</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">lpvBits,lpbmi</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">。其中</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">lpvBits</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">指明了指向内存中</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">BMP</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">数据的地址,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">lpbmi</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">指向一个</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">BITMAPINFO</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">的数据结构,只要有了这两个参数,一个</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">BMP</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">位图就被确定了。大家可以看到绝大多数的</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">Windows</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">图形图像浏览软件所能分析的文件格式,例如</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">jpg</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">、</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">gif</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">、</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">pcx</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">、</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">tif</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">等等,都是先在内存中建一个数据缓冲区,再根据图形图像格式建立一个<SPAN
lang=EN-US>BITMAPINFO的数据结构,再利用</SPAN></SPAN><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">SetDIBitsToDevice</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">函数写到屏幕上。我们下面几个实例,也基本上采用这个方式。<SPAN
lang=EN-US><O:P> </O:P></SPAN></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-pagination: none; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'"> <O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-pagination: none; mso-layout-grid-align: none; punctuation-wrap: simple; mso-outline-level: 1"><B
style="mso-bidi-font-weight: normal"><SPAN lang=EN-US
style="FONT-SIZE: 12pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">Windows</SPAN><SPAN
style="FONT-SIZE: 12pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">的调色板</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'"><O:P>
</O:P></SPAN></B></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; TEXT-INDENT: 20pt; mso-line-height-alt: 1.3pt; mso-pagination: none; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">Windows</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">的显示设备可以显示出成千上万种颜色,但是,在同一个屏幕上能同时显示的颜色数并不是成千上万种,我们把显示设备分为单色、十六色、二百五十六色、增强色、真彩色,或者是按照显示位区分成</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">1bit</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">4bit</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">8bit</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">,</SPAN><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -