📄 subject_35912.htm
字号:
<p>
序号:35912 发表者:shiguan_liu 发表日期:2003-04-10 12:16:22
<br>主题:打印字体控制问题
<br>内容:如何在以下代码加入打印字体控制?<BR><BR>void CTestDlg::OnPrint()<BR><BR> {<BR><BR> // 增加如下代码<BR><BR> char szprinter[80];<BR><BR> char *szDevice,*szDriver,*szOutput;<BR><BR> HDC hdcprint; // 定义一个设备环境句柄<BR><BR><BR><BR> //定义一个打印作业<BR><BR> Static DOCINFO di={sizeof(DOCINFO),"printer",NULL};<BR><BR> <BR><BR> // 得到设备字符串存入数组szprinter中<BR><BR> GetProfileString("windows","device",",,,",szprinter,80);<BR><BR><BR><BR> // 将设备字符串分解<BR><BR> if(NULL!=(szDevice=strtok(szprinter,","))&&<BR><BR> NULL!=(szDriver=strtok(NULL,","))&&<BR><BR> NULL!=(szOutput=strtok(NULL,",")))<BR><BR> // 创建一个打印机设备句柄<BR><BR> if((hdcprint=CreateDC(szDriver,szDevice,szOutput,NULL))!=0)<BR><BR> {<BR><BR> if(StartDoc(hdcprint,&di)>0) //开始执行一个打印作业<BR><BR> {<BR><BR>StartPage(hdcprint); //打印机走纸,开始打印<BR><BR>SaveDC(hdcprint); //保存打印机设备句柄<BR><BR>// 输出一行文字<BR><BR>TextOut(hdcprint,1,1,"这是一个例子",12);<BR><BR>// 输出一条直线<BR><BR>MoveToEx(hdcprint,20,20,NULL);<BR><BR>LineTo(hdcprint,120,120);<BR><BR><BR><BR> RestoreDC(hdcprint,-1); //恢复打印机设备句柄<BR><BR>EndPage(hdcprint); //打印机停纸,停止打印<BR><BR>EndDoc(hdcprint); //结束一个打印作业<BR><BR>MessageBox("打印完毕!","提示",MB_ICONINFORMATION);<BR><BR>}<BR><BR> // 用API函数DeleteDC销毁一个打印机设备句柄<BR><BR> DeleteDC(hdcprint);<BR><BR> }<BR><BR> else<BR><BR> {<BR><BR> MessageBox("没有默认打印机,或者没有安装打印机!");<BR><BR> return;<BR><BR> }<BR><BR> }<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:mimibaby 回复日期:2003-04-10 14:26:57
<br>内容:用CreateFont(..........)就行了然后把创建的字体选如设备描述表<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:shiguan_liu 回复日期:2003-04-10 15:43:01
<br>内容:谢谢mimibaby,能否举例说明?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:mimibaby 回复日期:2003-04-10 17:05:19
<br>内容:// 输出一行文字<BR><BR>HFONT hFont = CreateFont(.....);创建的字体<BR>HFONT holdFont = SelectObject(hdcprint,hFont);//把创建的字体选如设备描述表<BR>TextOut(hdcprint,1,1,"这是一个例子",12);<BR>SelectObject(hdcprint,holdFont);//画完以后将该字体删掉!<BR><BR>// 输出一条直线<BR><BR>CreateFont的用法参考MSDN<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:江川 回复日期:2003-04-13 21:43:11
<br>内容: CClientDC dc(this);<BR> TEXTMETRIC tm;<BR> CFont fontText;<BR> CSize sizeText;<BR>//前两位字体宽高最后字体类型<BR> fontText.CreateFont( 14,4, 0, 0, 400, FALSE, FALSE, 0,<BR> ANSI_CHARSET, OUT_DEFAULT_PRECIS,<BR> CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,<BR> DEFAULT_PITCH | FF_SWISS, "Times New Roman");<BR> CFont* pOldFont = (CFont*) dc.SelectObject(&fontText);<BR> dc.GetTextMetrics(&tm); <BR> sizeText = dc.GetTextExtent(strtext);<BR>//前两位字体位置 <BR> dc.SetBkColor(RGB(0,0,0));<BR> dc.SetTextColor(RGB(255,255,0));<BR> dc.SelectObject(&fontText);<BR> dc.TextOut(XPoint,YPoint,strtext);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -