📄 book_text17.htm
字号:
style="mso-spacerun: yes"> </SPAN>c.显示图像;<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; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'"><SPAN
style="mso-tab-count: 1"> </SPAN><SPAN
style="mso-spacerun: yes"> </SPAN>d.</SPAN><SPAN
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">实现以上“处理调色板”的功能;<SPAN
lang=EN-US><O:P> </O:P></SPAN></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
lang=EN-US><O:P> </O:P></SPAN></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
lang=EN-US
style="FONT-SIZE: 10.5pt; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">1.都要处理调色板;<O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 20pt; 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; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">2.除了“1”以外,“2”和“3”均包含了windows图像显示的必要条件:结构<O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 20pt; WORD-BREAK: break-all; TEXT-INDENT: 8.35pt; 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'">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
lang=EN-US>bitmap数据区。<O:P> </O:P></SPAN></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
lang=EN-US>BMP文件”或是“处理FLC动画”,其原因是:在大规模多媒体编程中,往往有几十或几百个BMP图像或动画,却只需要一两个调色板,过度泛滥的调色板往往造成版面切换过程中的闪烁,并浪费内存空间,因此要单独处理调色板。<O:P>
</O:P></SPAN></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
lang=EN-US>DIB图像的类:在这个类里,核心为两个参数(结构</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'">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
lang=EN-US>bitmap数据区)和一个调用API函数</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>Show()。这个类继承于调色板类,因为处理图像文件必须处理调色板。并成为其他图像文件的基类,因为要处理图像文件必须要有这两个结构和函数。<O:P>
</O:P></SPAN></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
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: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">//
MyBmp.h: interface for the MyBmp class.<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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">#if
!defined(AFX_MYBMP_H__34151075_C57B_11D1_94F8_0000B431BBA1__INCLUDED_)<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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">#define
AFX_MYBMP_H__34151075_C57B_11D1_94F8_0000B431BBA1__INCLUDED_<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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">#if
_MSC_VER >= 1000<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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">#pragma
once<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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">#endif
// _MSC_VER >= 1000<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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">#define
FALSERETURN {_lclose(hFile);return 0;}<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: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">#define
IMAGECOLORS(x,y)<SPAN style="mso-tab-count: 2">
</SPAN>(1<<((x)*(y)))<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"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-shading: white; mso-pattern: gray-15 auto; mso-bidi-font-family: 'Times New Roman'">//</SPAN><SPAN
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; LAYOUT-GRID-MODE: line; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-shading: white; mso-pattern: gray-15 auto">单行</SPAN><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -