首页 > 其他 > 详细

通用对话框

时间:2015-03-25 12:02:38      阅读:486      评论:0      收藏:0      [点我收藏+]

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 }

效果图:
技术分享

 

通用对话框

原文:http://www.cnblogs.com/DebugBin/p/4365108.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!