📄 chap5_6.htm
字号:
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//获取对本进程唯一的消息编号</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">static const UINT nMsgFindReplace =
::RegisterWindowMessage(FINDMSGSTRING);</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">BEGIN_MESSAGE_MAP(CCommonDlgView, CView)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//{{AFX_MSG_MAP(CCommonDlgView)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_COMMON_COLOR, OnCommonColor)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_COMMON_FONT, OnCommonFont)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_COMMON_OPENFILE,
OnCommonOpenfile)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_COMMON_SAVEFILE,
OnCommonSavefile)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_COMMON_PRINT, OnCommonPrint)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_COMMON_PRINTSETUP,
OnCommonPrintsetup)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_COMMON_FIND, OnCommonFind)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_COMMON_REPLACE,
OnCommonReplace)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//}}AFX_MSG_MAP</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">// Standard printing commands</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_FILE_PRINT,
CView::OnFilePrint)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_FILE_PRINT_DIRECT,
CView::OnFilePrint)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_COMMAND(ID_FILE_PRINT_PREVIEW,
CView::OnFilePrintPreview)</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ON_REGISTERED_MESSAGE(nMsgFindReplace,
OnFindReplaceCmd)</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">END_MESSAGE_MAP()</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CCommonDlgView::CCommonDlgView()</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">// TODO: add construction code here</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//缺省前景色为黑色,背景色为白色,字体为系统字体</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_ForeColor=0;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_BackColor=0xFFFFFF;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_Font.CreateStockObject(SYSTEM_FONT);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_pFindReplaceDlg=NULL; </span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void CCommonDlgView::OnDraw(CDC* pDC)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CCommonDlgDoc* pDoc = GetDocument();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">ASSERT_VALID(pDoc);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">// TODO: add draw code for native data
here</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">int x,y;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CFont *pOldFont;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">TEXTMETRIC TM;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">int textHeight;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//设置正文的字体</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">pOldFont=pDC->SelectObject(&m_Font);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//设置正文的前景色和背景色</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">pDC->SetTextColor(m_ForeColor);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">pDC->SetBkColor(m_BackColor);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//计算每行正文的高度</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">pDC->GetTextMetrics(&TM);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">textHeight=TM.tmHeight+TM.tmExternalLeading;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//输出正文</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">x=5;y=5;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">pDC->TextOut(x,y,"ABCDEFG");</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">y+=textHeight;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">pDC->TextOut(x,y,"abcdefg");</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//恢复原来的字体</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">pDC->SelectObject(pOldFont);</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void CCommonDlgView::OnCommonColor() </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">// TODO: Add your command handler code
here</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CColorDialog dlg;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">if(dlg.DoModal()==IDOK)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_BackColor=dlg.GetColor();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//重绘视图</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">Invalidate();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">UpdateWindow();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void CCommonDlgView::OnCommonFont() </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">// TODO: Add your command handler code
here</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CFontDialog dlg;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">if(dlg.DoModal()==IDOK)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">LOGFONT LF;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//获取所选字体的信息</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">dlg.GetCurrentFont(&LF);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_ForeColor=dlg.GetColor();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//建立新的字体</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_Font.DeleteObject();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_Font.CreateFontIndirect(&LF);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">Invalidate();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">UpdateWindow();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void CCommonDlgView::OnCommonOpenfile() </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">// TODO: Add your command handler code
here</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//过滤字符串</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">char szFileFilter[]=</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"Cpp files(*.cpp)|*.cpp|"</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"Header files(*.h)|*.h|"</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"All files(*.*)|*.*||";</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CFileDialog dlg(TRUE, //Open对话框</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"cpp", //缺省扩展名</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"*.cpp",</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">OFN_HIDEREADONLY|OFN_FILEMUSTEXIST, //文件必须存在</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">szFileFilter,</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">this);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">if(dlg.DoModal()==IDOK)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CString str="The full path name
is:";</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">str+=dlg.GetPathName();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">AfxMessageBox(str);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></p>
<p ALIGN="JUSTIFY"></b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void CCommonDlgView::OnCommonSavefile() </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">// TODO: Add your command handler code
here</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">char szFileFilter[]=</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"Cpp files(*.cpp)|*.cpp|"</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"Header files(*.h)|*.h|"</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"All files(*.*)|*.*||";</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CFileDialog dlg(FALSE, //Save对话框</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"cpp",</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">"*.cpp",</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">szFileFilter,</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">this);</span></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -