通用对话框

1.打开文件对话框

 

 1 void CCommomView::OnDialogOpenfiledlg()
 2 {
 3     CFileDialog fileDlg(TRUE);
 4     //过滤字符串,过滤字符串的格式:由多个字串组成,每个字串由两部分组成,第一部分是
 5     //过滤器的字面说明,如"Text files(*.txt)",第二部分是用于过滤的匹配字符串,如"*.txt",
 6     //子串的两部分用"\0"或"|"分隔开.最后两个字符必须是两个连续的"\0"或"||"
 7     fileDlg.m_ofn.lpstrFilter = _T("Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0");
 8     fileDlg.m_ofn.lpstrTitle = _T("打开文件");
 9     char szBuf[20];
10     memset(szBuf, 0, 20);
11     if (fileDlg.DoModal() == IDOK)
12     {
13         CFile file(fileDlg.m_ofn.lpstrFile, CFile::modeRead);
14         file.Read(szBuf, 20);
15         file.Close();
16         AfxMessageBox(LPCTSTR(szBuf));
17     }
18 }

 

2.保存文件对话框

 

 1 void CCommomView::OnDialogSavefiledialog()
 2 {
 3     CFileDialog fileDlg(FALSE);
 4     fileDlg.m_ofn.lpstrFilter = _T("Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0");
 5     fileDlg.m_ofn.lpstrTitle = _T("保存文件");
 6     char szBuf[20] = "利用对话框";
 7     if (fileDlg.DoModal() == IDOK)
 8     {
 9         CFile file(fileDlg.m_ofn.lpstrFile, CFile::modeCreate | CFile::modeWrite);
10         file.Write(szBuf, strlen(szBuf));
11         file.Close();
12         AfxMessageBox(_T("文件已保存"));
13     }
14 }

 

效果图:

3.颜色对话框

 

 1 void CCommomView::OnDialogColordialog()
 2 {
 3     CColorDialog ClrDlg;
 4     ClrDlg.m_cc.Flags |= CC_FULLOPEN | CC_RGBINIT;       //完全显示
 5     if (ClrDlg.DoModal() == IDOK)
 6     {
 7         m_clr = ClrDlg.m_cc.rgbResult;
 8         CString strColor;
 9         strColor.Format(_T("RGB(%d,%d,%d)"),GetRValue(m_clr),GetGValue(m_clr),GetBValue(m_clr));
10         AfxMessageBox(strColor);
11     }
12 }

 

效果图:

 

4.字体对话框

 1 void CCommomView::OnDialogFontdialog()
 2 {
 3     CFontDialog fontDlg;
 4     if (m_font.m_hObject)
 5     {
 6         m_font.DeleteObject();
 7     }
 8     if (fontDlg.DoModal() == IDOK)
 9     {
10         m_font.CreateFontIndirect(fontDlg.m_cf.lpLogFont);
11         m_fontName = fontDlg.m_cf.lpLogFont->lfFaceName;
12         Invalidate();
13     }
14 }

以上是设置保存用户选择的字体,接着使窗口无效,重绘

然后在视图类的成员函数OnDraw中用刚刚获取到的字体书写文件

 1 void CCommomView::OnDraw(CDC* pDC)
 2 {
 3     CCommomDoc* pDoc = GetDocument();
 4     ASSERT_VALID(pDoc);
 5     if (!pDoc)
 6         return;
 7 
 8     CFont* pOldFont = pDC->SelectObject(&m_font);
 9     pDC->TextOut(0,0, m_fontName);
10     pDC->SelectObject(pOldFont);
11 }

效果图:

5.查找对话框

查找对话框一般是非模态对话框

 

 1 void CCommomView::OnDraw(CDC* pDC)
 2 {
 3     CCommomDoc* pDoc = GetDocument();
 4     ASSERT_VALID(pDoc);
 5     if (!pDoc)
 6         return;
 7 
 8     CFont* pOldFont = pDC->SelectObject(&m_font);
 9     pDC->TextOut(0,0, m_fontName);
10     pDC->SelectObject(pOldFont);
11 
12     // TODO: add draw code for native data here
13 }

 

6.替换对话框

 

 1 void CCommomView::OnDialogReplacedialog()
 2 {
 3     CFindReplaceDialog* pDlg = new CFindReplaceDialog();
 4     CString strFind,strReplace;
 5     strFind = _T("查找");
 6     strReplace = _T("替换");
 7     
 8     pDlg->Create(false, strFind,strReplace,FR_DOWN, this);
 9     pDlg->ShowWindow(SW_SHOW);
10 }

 

效果图:

7.页面设置对话框

 

 1 void CCommomView::OnDialogPagesetupdialog()
 2 {
 3     CPageSetupDialog dlg;
 4     if (dlg.DoModal())
 5     {
 6         PAGESETUPDLG psd = dlg.m_psd;
 7         CString str;
 8         str.Format(_T("页面大小:%d,%d"),psd.ptPaperSize.x,psd.ptPaperSize.y);
 9         AfxMessageBox(str);
10     }
11 }

 

效果图:

 

8.打印对话框

 

 1 void CCommomView::OnDialogPagesetupdialog()
 2 {
 3     CPageSetupDialog dlg;
 4     if (dlg.DoModal())
 5     {
 6         PAGESETUPDLG psd = dlg.m_psd;
 7         CString str;
 8         str.Format(_T("页面大小:%d,%d"),psd.ptPaperSize.x,psd.ptPaperSize.y);
 9         AfxMessageBox(str);
10     }
11 }

效果图:

 

posted @ 2015-03-25 11:19  (安于此生)  阅读(473)  评论(0编辑  收藏  举报