📄 csdn_文档中心_打印位图(上).htm
字号:
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN>CBitmap<SPAN
style="mso-tab-count: 1">
</SPAN>Bitmap,*pOldBmp;<SPAN
style="mso-tab-count: 1">
</SPAN><o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN>CRect<SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Source, Dest; </SPAN><SPAN lang=EN-US
style="COLOR: #009900; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">//
</SPAN><SPAN
style="COLOR: #009900; FONT-FAMILY: 宋体; FONT-SIZE: 10pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">记录源位图尺寸和最终显示尺寸</SPAN><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN>BITMAP<SPAN
style="mso-tab-count: 1">
</SPAN>bm;<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN></SPAN><SPAN lang=EN-US
style="COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">if</SPAN><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">(MemDC.GetSafeHdc()
== NULL)<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN>{<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>HBITMAP
hbitmap=(HBITMAP)LoadImage(0,strFileName,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Bitmap.Attach(hbitmap);<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>MemDC.CreateCompatibleDC(pDC);<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Bitmap.GetObject(</SPAN><SPAN lang=EN-US
style="COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">sizeof</SPAN><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">(bm),&bm);<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>pOldBmp=MemDC.SelectObject(&Bitmap);<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Source.top=0;<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Source.left=0;<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Source.right= bm.bmWidth;<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Source.bottom = bm.bmHeight;<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 2">
</SPAN>Dest = Source;<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN>}<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN>pDC->DPtoLP(&Dest);<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN></SPAN><SPAN lang=EN-US
style="COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">if</SPAN><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">(pDC->IsPrinting())<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN>{<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Dest.left=(</SPAN><SPAN lang=EN-US
style="COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">int</SPAN><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">)(Dest.left*((</SPAN><SPAN
lang=EN-US
style="COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">double</SPAN><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">)pDC->GetDeviceCaps(LOGPIXELSX))/iLogPixelX);<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>Dest.right=(</SPAN><SPAN lang=EN-US
style="COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">int</SPAN><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">)(Dest.right*((</SPAN><SPAN
lang=EN-US
style="COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">double</SPAN><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt">)pDC->GetDeviceCaps(LOGPIXELSX))/iLogPixelX);<o:p></o:p></SPAN></P>
<P align=left class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN
lang=EN-US
style="COLOR: black; FONT-SIZE: 10pt; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt"><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -