友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

VC语言6.0程序设计从入门到精通-第39章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




4…30 所示。  



                                                                  



                                   图 4…30    文件对话框  



    使用文件对话框时,同样只需打开一个对应的模态对话框。CFileDialog 封装了文件对话 

框的操作。相关代码在 CGridDemoDoc::OnFileOpen()函数中,添加步骤如下:  

     (1)创建 CGridDemoDoc::OnFileOpen()消息处理函数。  

    CGridDemoDoc::OnFileOpen()是文档类 CGridDemoDoc 处理“文件|打开”菜单消息的函 

数。用户可以根据第 3 章的讲解,为 GridDemoDoc 添加 ID 为 ID_FILE_OPEN 的消息处理函 

数,名称为 OnFileOpen,即可完成该处理函数的添加。  

     (2 )创建打开文件对话框对象。  

    这部分功能在         CGridDemoDoc::OnFileOpen() 函数的头部实现,其创建了名为                     dlg 的 

CFileDialog 类对象,代码如下:  



    //设置过滤器  



    char szFilters''=  



         〃数据文件  (*。dat)|*。dat|所有文件  (*。*)|*。*||〃;  



    //创建打开文件对话框  



    CFileDialog dlg (TRUE; 〃数据文件〃; 〃*。dat〃;  



         OFN_FILEMUSTEXIST| OFN_HIDEREADONLY; szFilters);  



     (3 )打开并使用打开文件对话框。  

    这部分功能在 CGridDemoDoc::OnFileOpen()函数中,具体如下:  



    //运行对话框  



    if( dlg。DoModal ()==IDOK )  



     {  



         //处理选中的文件  



         CString szPathName = dlg。GetPathName();  



 ·94 ·  


…………………………………………………………Page 104……………………………………………………………

                                                                              第 4 章    对话框  



         SetTitle(dlg。GetFileTitle());  



         OnOpenDocument(szPathName);      //打开文档  



     }  



     在这个步骤中,还可以用以下 CFileDialog 的一些成员函数获得对话框的选择。  

     o  GetFileExt() :获得选定文件的后缀名。  

     o  GetFileName() :获得选定文件的名称,包括后缀名。  

     o  GetFileTitle() :获得选定文件的标题,即不包括后缀名。  

     o  GetFolderPath() :获得选定文件的目录。  

     o  GetNextPathName() :获得下一个选定的文件的路径全名。  

     o  GetPathName() :获得选定文件的路径全名。  

     o  GetReadOnlyPref() :获得是否“以只读方式打开”。  

     o  GetStartPosition() :获得文件名列表中的第一个元素的位置。  



4。5。5    字体对话框  



     字体对话框用于选择字体,如图 4…31 所示。CFontDialog 封装了字体对话框的操作,其 

使用方法类似于其他模态通用对话框。  



                                                                 



                                     图 4…31    字体对话框  



     相关代码在 CGridDemoView::OnSetFont()函数中,添加步骤如下:  

     (1)添加 CGridDemoView::OnSetFont()消息处理函数。  

     CGridDemoView::OnSetFont() 函数是“编辑|字体”菜单的消息处理函数,对应                                ID  为 

ID_SET_FONT 。用户需要按照第 3 章的讲解,在“编辑”顶层菜单中添加标题为“字体”, 

ID 为 ID_SET_FONT 的子菜单,然后为 CGridDemoView 类添加这个 ID 的消息处理函数,即 

OnSetFont() 。  

     (2 )编辑 CGridDemoView::OnSetFont()消息处理函数使用字体对话框。代码如下:  



     void CGridDemoView::OnSetFont()    



     {  



         // TODO: Add your mand handler code here  



         //获得选中单元格的旧字体  



         CFont *pFont=m_CellArray'm_nCurCellID'。GetFont();  



         LOGFONT lf;  



                                                                                       ·95 ·  


…………………………………………………………Page 105……………………………………………………………

Visual C++ 6。0 程序设计从入门到精通  



          if (pFont != NULL)  



                pFont…》GetObject(sizeof(LOGFONT); &lf);  



          else  //单元格使用默认字体  



                ::GetObject(GetStockObject(SYSTEM_FONT); sizeof(LOGFONT); &lf);  



          //使用选择字体对话框  



          CFontDialog dlg(&lf; CF_SCREENFONTS|CF_INITTOLOGFONTSTRUCT);  



          if (dlg。DoModal()==IDOK)  



          {  



                //设置新字体  



                m_CellArray'm_nCurCellID'。SetFont(&lf);  



          }  



     }  



4。5。6    颜色对话框  



     当需要选择颜色的时候就可以使用  Windows                             通用的颜色对话框,如图                    4…32   所示。 

CColorDialog 封装了字体对话框的使用,其使用方法与前面所述的模态通用对话框类似。  



                                                               



                                          图 4…32    颜色对话框  



     GridDemo 例程中使用颜色对话框的代码在 CGridDemoView::OnSetColor()函数中。添加 

步骤如下。  

     (1)添加 CGridDemoView::OnSetColor()消息处理函数。  

     CGridDemoView::OnSetColor() 函数是“编辑|颜色”菜单的消息处理函数,对应                                          ID  为 

ID_SET_COLOR 。用户需要按照第 3 章的讲解,在“编辑”顶层菜单中添加标题为“颜色”, 

ID 为 ID_SET_COLOR 的子菜单,然后为 CGridDemoView 类添加这个 ID 的消息处理函数, 

即 OnSetColor() 。  

     (2 )编辑 CGridDemoView::OnSetColor()消息处理函数使用颜色对话框。代码如下:  



     void CGridDemoView::OnSetColor()    



      {  



          // TODO: Add your mand handler code here  



          //获得选中单元格的旧前景色  



          CColorDialog dlg(m_CellArray'm_nCurCellID'。GetFgColor());  



          if (dlg。DoModal()==IDOK)  



 ·96 ·  


…………………………………………………………Page 106……………………………………………………………

                                                                                        第 4 章    对话框  



          {  



                //设置新的前景颜色  



                m_CellArray'm_nCurCellID'。SetFgColor(dlg。GetColor());  



          }  



     }  



4。6    消息对话框  



     消息对话框 MessageBox 是 Windows 系统中自带的最简单的对话框,用于提示一些简单 

的信息,如图 4…33 所示。本章 4。1。3 节中实例 Sample4_1 在登录对话框的消息处理函数中就 

大量使用了消息对话框。  



                                                                    



                                          图 4…33    消息对话框  



     在 MFC 中,消息对话框通过 CWnd::MessageBox()和 AfxMessageBox()两个函数进行调用。 

前一个函数是 CW
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!