您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > C++Builder开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

用C++ Builder3 制作记事本
2001-12-22· ·  ··  

上一页  1 2 3 4 5 6  下一页


  类似地,我们再来处理打开文件的工作。首先,在表单中放置一个OpenDialog组件,DefaultExt和Filter属性同SaveDialog1,将Options属性中的ofFileMustExist(文件必须存在)设为true。然后在表单编辑区中的菜单中选菜单项“打开(O)...”,在代码编辑区中输入如下语句。
if(!if_saved)if(Application ->MessageBox("文件还未保存,是否要保存?","我的记事本",
MB_OKCANCEL+MB_DEFBUTTON1+MB_ICONWARNING)==ID_OK) S1Click(NULL);
/ * 如果文件没有保存,我们得先征求用户是否要保存文件。s1Click()是“保存(s)”菜单项的处理函数(就是接下来处理的菜单项),“保存(S) ”菜单项的工作就是将文件存盘,所以我们没有必要写重复的代码,而只要直接调用该函数就可以了。注意,如果你的“保存(S)”菜单项的名字属性不是S1而是其他,那么这个函数的名字也会有所不同,但总是“名字”+Click() */

if(!OpenDialog1->Execute())return;
UserFileName=OpenDialog1->FileName.c_str();
Memo1->Lines->LoadFromFile(UserFileName);
sprintf(title_buf,"% s - 我的记事本", UserFileName);
Caption = title_buf;
(为节省篇幅,以下凡是重复的操作描述省略)
处理“保存(S)”菜单项,输入:
Memo1->Lines->SaveToFile(UserFileName);
If_saved=TRUE;
sprintf(title_buf,"% s - 我的记事本", UserFileName)";
Caption = title_buf;
处理“新建(N)”菜单项,输入如下语句:
lf(!If_saved)
if(Application ->MessageBox ("文件还未保存,是否要保存?","我的记事本",
MB_OKCANCEL+MB_DEFBUTTON1+MB_ICONWARNING)==ID_OK)S1Click(NULL);
sprintf(UserFileName,"Untitled.txt");
sprintf(title_buf, "% s - 我的记事本-未存盘",UserFileName);
Caption=title_buf;
Memo1->Lines->Clear(); //将编辑控制中的内容清空




  随后,我们要处理Memo1的OnChange事件(Events)。一旦编辑控制中的内容有改变,Memo1就将产生OnChange事件,这时需要将If_saved置为FALSE,表示文件已经改动过了,并在标题上显示“未存盘”。在对象观察器中选Memo1,再单击下面的Events,将列出许多事件,第一个就是OnChange,双击后面的编辑框,后面的操作和处理菜单项是一样的(其实前面处理的菜单项就是处理菜单的OnClick事件),输入:

If_saved=FALSE;
sprintf(title_buf,"% s -我的记事本-未存盘", UserFileName);
Caption=title_buf;


随后处理MainForm的OnClose事件,输入:
//OnClose事件在关闭窗口时产生,需要做一些收尾工作
if(!If_saved)
if(application->MessageBox("文件还未保存,是否要保存?","我的记事本",
MB_OKCANCEL+MB_DEFBUTTON1+MB_ICONWARNING)==ID_OK)S1Click(NULL);


最后,处理“退出(X)”菜单项,输入如下语句:
if(!If_saved)
if(application->MessageBox("文件还未保存,是否要保存?","我的记事本",
MB_OKCANCEL+MB_DEFBUTTON1+MB_ICONWARNING)==ID_OK)S1Click(NULL);
Application->Terminate(); //程序结束



  到此为止,终于小功告成了,快把项目保存下来吧。在File菜单中选Save Project As…,首先弹出的对话框要求输入表单的文件名(不能和表单的名字属性相同),我们就输入Main。随后弹出的对话框才是要求输入项目(Project)的文件名,该文件名也就是exe文件的名字,我们输入NotePad。保存后再选Project菜单里的Make NotePad,或按Ctrl+F9,就会产生一个NOtePad.exe,这就是我们自己做的记事本,目前它已经能打开文件、编辑并保存。你一定发现菜单中还有许多功能尚未实现,这就是我只说小功告成的原因,不过下次我们会完成它。

上一页  1 2 3 4 5 6  下一页

【责任编辑:  】
【发表评论】【关闭窗口】
■ 相关内容
 QuickReport基本知识
 用C++Builder开发动画DLL
 用C++Builder建立多线程COM服务器
 在BCB中使用DirectX
 Windows下DLL编程技术及应用
 如何在C++ Builder环境中实现在菜单中显示历史文件列表
 C++BUILDER非可视组件的消息处理技巧
 QuickReport基本知识
 拦截Windows消息--C++ Builder的API后门
 C++Builder4.0实现在线接收电子邮件
 窗体事件驱动链引发程序错误分析(二)
 窗体事件驱动链引发程序错误分析(一)
 Windows多线程间同步事件的控制方法
 深入VCL 理解BCB的消息机制(二)
 用C++Builder开发动画DLL
 C++ Builder VCL库函数简介
 TDataSetExport1.01使用说明
 手机短信息SMS开发—编码和解码
 用C++ Builder开发ISAPI
 C++Builder调用Matlab
 用C++Builder6制作Apache动态服务页
 用C++Builder6 制作动态服务页
 用C++Builder编写发送电子邮件软件
 用C++ Builder 制作屏幕保护程序
 C++Building制作闹钟
 利用C++ Builder 5.0创建用户自己的网上聊天程序
 用C++Builder5.0设计九宫排字游戏
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!