6.7Windows通用对话框

上传人:宝路 文档编号:6818637 上传时间:2017-09-14 格式:DOC 页数:17 大小:395.50KB
返回 下载 相关 举报
6.7Windows通用对话框_第1页
第1页 / 共17页
6.7Windows通用对话框_第2页
第2页 / 共17页
6.7Windows通用对话框_第3页
第3页 / 共17页
6.7Windows通用对话框_第4页
第4页 / 共17页
6.7Windows通用对话框_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《6.7Windows通用对话框》由会员分享,可在线阅读,更多相关《6.7Windows通用对话框(17页珍藏版)》请在金锄头文库上搜索。

1、1任务六 对话框应用程序设计6.7 Windows 通用对话框Windows 通用对话框是由操作系统提供的任何应用程序都可以获得的对话框。在VC+中,对这些对话框进行了封装,使用户在开发程序时可以方便的调用这些对话框。6.7.1 使用“文件”对话框打开和保存文件主程序名:FileDialog1、添加两个按钮控件,一个编辑框控件,两个静态文本控件22、为控件关联变量3、编辑“打开”按钮,编辑程序void CFileDialogDlg:OnOpen() / TODO: Add your control notification handler code hereCFileDialog 3dlg(T

2、RUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,All Files(*.TXT)|*.TXT|,AfxGetMainWnd();CString strPath,strText=;if(dlg.DoModal() = IDOK)strPath = dlg.GetPathName();m_OpenPath.SetWindowText(strPath);CFile file(strPath,CFile:modeRead);char read10000;file.Read(read,10000);for(int i=0;iAppendMenu(MF

3、_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE); / Set big iconSetIcon(m_hIcon, FALSE); / Set small icon/ TODO: Add extra initializati

4、on hereCString str = ;str +=有志者,事竟成,破釜沉舟,百二秦关终属楚rn;str +=苦心人,天不负,卧薪尝胆,三千越甲可吞吴rn;m_Text.SetWindowText(str);return TRUE; / return TRUE unless you set the focus to a control4、 “文字”按钮控件的程序编辑void CFontDialogDlg:OnFont() / TODO: Add your control notification handler code hereCFont* TempFont = m_Text.GetFo

5、nt(); /获取编辑框当前字体LOGFONT LogFont;TempFont-GetLogFont(&LogFont);CFontDialog dlg(&LogFont); /初始化字体信息if(dlg.DoModal()=IDOK)m_Font.Detach();LOGFONT temp;dlg.GetCurrentFont(&temp); /获取当前字体信息m_Font.CreateFontIndirect(&temp); /直接创建字体m_Text.SetFont(&m_Font); /设置字体6.7.3 使用“颜色”对话框设置文本背景颜色主程序名:ColorDialog 71、添加

6、一个按钮控件,一个静态文本对话框 ID:IDD_COLORDIALOG_DIALOG对话框标:使用颜色 对话框设置文本背景颜色按钮 ID:IDC_COLOR按钮标题:颜色静态文本控件 ID:IDC_STATIC静态文本控件标题:红笺小字,说尽平生易。鸿雁在云鱼在水,rn 惆怅此情难寄。斜阳独倚西楼,遥山恰对恋钩,rn 人面不知何处,绿波依旧东流。rn2、 “颜色”按钮对话框的程序编写void CColorDialogDlg:OnColor() / TODO: Add your control notification handler code hereCColorDialog dlg(m_Co

7、lor); /创建颜色对话框if (dlg.DoModal()=IDOK)m_Color = dlg.GetColor();/获取用户选择的颜色Invalidate();/重绘窗口3、添加事件,在处理对话框中添加 WM_CTLCOLOR 事件,在该事件的处理函数中设置静态文本控件显示文本的背景颜色。8HBRUSH CColorDialogDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);if(nCtlColor = CTLCOLOR

8、_STATIC)pDC-SetBkColor(m_Color);return hbr;6.7.4 使用“查找/替换”对话框在文本中替换字符串主程序名:ReplaceDialog1、添加一个按钮控件,一个文本框控件对话框 ID:IDD_REPLACEDIALOG_DIALOG对话框标:使用查找/替换 对话框在文本中替换字符串按钮 ID:IDC_REPLACE按钮标题:替换文本框控件 ID:IDC_EDIT192、为控件关联变量3、在头文件中声明变量class CReplaceDialogDlg : public CDialog/ Constructionpublic:CReplaceDialog

9、Dlg(CWnd* pParent = NULL); / standard constructorCFindReplaceDialog* dlg; /声明查找/替换对话框指针int nindex; /存储查找字符串的起始位置int rindex; /替换字符串的大小BOOL degree; /判断是否为第一次替换的变量BOOL find; /判断是否进行查找的变量4、初始化对话框时添加文本内容程序BOOL CReplaceDialogDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./

10、IDM_ABOUTBOX must be in the system command range.10ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main w

11、indow is not a dialogSetIcon(m_hIcon, TRUE); / Set big iconSetIcon(m_hIcon, FALSE); / Set small icon/ TODO: Add extra initialization hereCString str=;str += 君不见黄河之水天上来,奔流到海不复回。rn;str += 君不见高堂明镜悲白发,朝如青丝暮成雪。rn;str += 人生得意须尽欢,莫使金樽空对月。rn;str += 天生我材必有用,千金散尽还复来。rn;str += 烹羊宰牛且为乐,会须一饮三百杯。rn;str += 岑夫子,丹丘生

12、,将进酒,杯莫停。rn;str += 与君歌一曲,请君为我倾耳听。rn;str += 钟鼓馔玉不足贵,但愿长醉不复醒。rn;str += 古来圣贤皆寂寞,惟有饮者留其名。rn;str += 陈王昔时宴平乐,斗酒十千恣欢谑。rn;str += 主人何为言少钱,径须沽取对君酌。rn;str += 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。;m_Edit.SetWindowText(str);nindex = 0;degree = FALSE;return TRUE; / return TRUE unless you set the focus to a control5、在头文件中添加函数声

13、明afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg long OnFindReplace(WPARAM wParam,LPARAM lParam);11afx_msg void OnReplace();6、在主程序中添加映射宏ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_REGISTERED_MESSAGE(WM_FINDMESSAGE, OnFind

14、Replace )ON_BN_CLICKED(IDC_REPLACE, OnReplace)7、书写该程序long CReplaceDialogDlg:OnFindReplace(WPARAM wParam, LPARAM lParam)CString strText,repText; /声明字符串变量strText = dlg-GetFindString(); /获得查找字符串CString str; /声明字符串变量m_Edit.GetWindowText(str); /获得编辑框中是文本if(dlg-ReplaceCurrent() /判断是否进行替换find = FALSE; /进行替

15、换elsefind = TRUE; /进行查找int len; /声明整型变量if(dlg-ReplaceAll() /判断是否全部替换repText = dlg-GetReplaceString(); /获得替换字符串len = repText.GetLength(); /获得替换字符串长度str.Replace(strText,repText); /使用替换字符串替换查找字符串m_Edit.SetWindowText(str); /将替换后的字符串显示在编辑框中if(find) /判断是查找还是替换len = strText.GetLength(); /获得要查找字符串的长度elseCString left,right; /声明字符串变量int num = strText.GetLength(); /获得查找字符串的长度int strnum = str.GetLength(); /获得编辑框中文本长度int index; /声明整型变量int ret = str.Find(strText,0);if(ret = 0) /判断起始查找位置是否小于 0index = str.Find(strText,nindex-rindex);/获得查找字符串在编辑框文本中的位置e

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号