ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:41KB ,
资源ID:12072919      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12072919.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C---Builder中MDI应用程序的设计.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C---Builder中MDI应用程序的设计.doc

1、C++ Builder中MDI应用程序的设计 MDI(多文档界面)应用程序是指用户可以同时打开多个文档,每一个文档显示在应用程序主窗口客户区的独立窗口中。如字处理程序Word就是一个典型的MDI应用程序,你可以在Word中同时打开和使用多个文档,PowerPoint中你也可以同时创建和打开多个幻灯片应用程序,电子表格中也允许用户同时对多个图表进行编辑。MDI应用程序一般包括三类窗口: * 框架窗口:框架窗口与应用程序的主窗口类似,有可改变大小的边框、标题栏、系统菜单等。应用程序必须为框架窗口注册一个窗口类。一个MDI应用程序一般只有一个框架窗口,框架窗口控制着其它各类窗口。 *

2、 客户窗口:客户窗口提供对下属MDI子窗口的管理,每一个MDI应用程序有一个客户窗口。 * 子窗口:当用户打开或创建一个文档时,客户窗口便为该文档创建一个子窗口。每个子窗口都有可以改变大小的边框、标题栏、系统菜单、最小最大化按钮等。任何时刻只有一个子窗口是活动的。子窗口不能超出客户窗口的范围。 用一般的开发工具开发MDI应用程序相当麻烦:你必须注册框架窗口和子窗口类、创建框架窗口和客户窗口、写消息循环和回调函数、创建子窗口等等,其中的每一步都不是什么轻而易举之事。但是在Borland C++ Builder(以下简称CB)中实现MDI应用程序却相对简单,你只需设置一下窗体的属性Fo

3、rmStyle即可:把框架窗口的FormStyle设为fsMDIForm,子窗口的FormStyle设为fsMDIChild。另外CB本身也提供了MDI程序模板,选择File|New|Projects|MDI Application,如下图所示: CB就会产生一个MDI应用程序框架。直接编译运行该程序,就可以看到该程序已经具有一个MDI程序的基本特征了。 我们利用这个模板设计一个MDI应用程序。该程序是一个支持多文本格式和普通文本格式的多文档编辑器,且同时支持工具栏快捷按钮和打印输出。下面我们就来谈一谈其具体开发过程: (1) 选择File|New|Projects|MDI Appl

4、ication,产生MDI程序框架。 (2) 把主框架窗口另存为MDIMain.cpp,子窗口另存为MDIChild.cpp,工程名另存为MDI。 (3) 转到主框架窗口FrameForm,设置其Caption为“ MDI演示程序---可打开多文件的文本编辑器”,在Object Inspector中观察FrameForm的属性,可看到其FormStyle为fsMDIForm。改变主框架窗口FrameForm上的控件(Component). (4)点击菜单控件,改变菜单项和菜单项的OnClick事件如下,使之适合自己的要求: 菜单项 菜单项的OnClick事件 文件:新建 New1

5、Click 打开 Open1Click 退出 Exit1Click 窗口:层叠 Tile1Click 平铺 Cascade1Click 排列图标 Arrangeicons1Click (5) 改变SpeedPanel上的TSpeedButton控件和事件响应,并在其属性Glyph中装入相应的位图图像: 快捷按钮名称 事件响应 SpeedButton1 New1Click SpeedButton2 Open1Click SpeedButton3 Exit1Click (6)修改原有的OpenDialog文件打开对话框控件的属性: 单击Filter属性,弹出Filter

6、Editor对话框,输入: Rich Text Format(*.rtf) *.rtf Text Files(*.txt) *.txt All Files(*.*) *.* (7) 选择View|Project Manager,在Project Manager中单击MDIChild一栏的ChildForm,就可以查看该子窗体的FormStyle属性为fsMDIChild。设置窗体的事件响应: OnClick FormClick OnClose FormClose OnCloseQuery FormCloseQuery OnCreate FormCreate 拖动控件到Chil

7、dForm之上。 (8) 设置ChildForm上菜单控件的菜单项名称和菜单项的OnClick事件: 菜单项 菜单项的OnClick事件 文件:新建 New1Click 打开 Open1Click 关闭 Close1Click 保存 Save1Click 另存为 Saveas1Click 打印 Print1Click 打印设置 Printersetup1Click 退出 Exit1Click 编辑:剪切 Cut1Click 复制 Copy1Click 粘贴 Paste1Click 删除 Delete1Click 全选 Selectall1Click

8、 其他:靠左 Left1Click 靠右 Left1Click 居中 Left1Click 自动换行 Wordwrap1Click 字体 Font1Click (9) 从Dialogs控件板选取对话框控件到ChildForm上,并设置其属性: * SaveDialog Name SaveFileDialog 单击Filter属性,弹出Filter Editor对话框,输入: Rich Text Format(*.rtf) *.rtf Text Files(*.txt) *.txt All Files(*.*) *.* * PrintDialog Name Print

9、Dialog1 * PrinterSetupDialog Name PrinterSetupDialog1 * FontDialog Name FontDialog1 (10) 然后从Win32控件板中选择RichEdit控件,放在ChildForm上,设置其属性: Align alClient Name doc 点击Lines属性,弹出String list editor,清空里面的内容。 (11) 最后,在程序中加入程序源代码。运行该程序,然后打开两个文档(该程序在C++ Builder 3.0和Windows 95下调试通过): 附源程序清单: (这儿略去大部分

10、系统自己加进去的程序代码部分): //-------- MDIMain.cpp-------- #include "MDIMain.h" #include "MDIChild.h" __fastcall TFrameForm::TFrameForm(TComponent* Owner) : TForm(Owner) { } void __fastcall TFrameForm::Exit1Click(TObject *Sender) {Close();//应用程序退出} void __fastcall TFrameForm::Tile1Click(TObject *Sende

11、r) {Tile();//窗口层叠} void __fastcall TFrameForm::Cascade1Click(TObject *Sender) {Cascade();//窗口平铺} void __fastcall TFrameForm::Arrangeicons1Click(TObject *Sender) { ArrangeIcons();//排列图标} //新建文档 void __fastcall TFrameForm::New1Click(TObject *Sender) { ChildForm = new TChildForm(this); } //打开文

12、件 void __fastcall TFrameForm::Open1Click(TObject *Sender) { if(OpenFileDialog->Execute()){ ChildForm=new TChildForm(this); ChildForm->Open(OpenFileDialog->FileName); } } //----------MDIChild.cpp------------- #include "MDIChild.h" #include "MDIFrame.h" TChildForm *ChildForm; //定义缺省文件名为Unt

13、itled const AnsiString DefaultFileName = AnsiString("Untitled"); __fastcall TChildForm::TChildForm(TComponent* Owner) : TForm(Owner) { } //文件打开函数 void __fastcall TChildForm::Open(const AnsiString AFileName) { PathName = AFileName; Caption = ExtractFileName(AFileName); doc->Lines->LoadFromF

14、ile(PathName); doc->SelStart = 0; doc->Modified = false; } void __fastcall TChildForm::New1Click(TObject *Sender) { FrameForm->New1Click(Sender); //新建文件} void __fastcall TChildForm::Open1Click(TObject *Sender) { FrameForm->Open1Click(Sender);//打开文件 } void __fastcall TChildForm::Close1Click(T

15、Object *Sender) { Close();//关闭打开的文件} void __fastcall TChildForm::Exit1Click(TObject *Sender) { FrameForm->Exit1Click(Sender);//退出应用程序 } //保存打开或创建的文档 void __fastcall TChildForm::Save1Click(TObject *Sender) { if(Caption == DefaultFileName){ Saveas1Click(Sender); } else{ doc->Lines->SaveToFi

16、le(PathName); doc->Modified = false; } } //另存打开或创建的文档 void __fastcall TChildForm::Saveas1Click(TObject *Sender) { SaveFileDialog->FileName = PathName; if (SaveFileDialog->Execute() ){ PathName= SaveFileDialog->FileName; Caption = ExtractFileName(PathName); Save1Click(Sender); } } //文档打印

17、 void __fastcall TChildForm::Print1Click(TObject *Sender) { if (PrintDialog1->Execute()){ try { doc->Print(PathName); } catch(...){ Printer()->EndDoc(); throw; } } } void __fastcall TChildForm::Printersetup1Click(TObject *Sender) { PrinterSetupDialog1->Execute();//打开打印机设置对话框进行打印机设置} void

18、 __fastcall TChildForm::Cut1Click(TObject *Sender) {doc->CutToClipboard();//文档剪切到剪贴板} void __fastcall TChildForm::Copy1Click(TObject *Sender) { doc->CopyToClipboard();//文档拷贝到剪贴板} void __fastcall TChildForm::Paste1Click(TObject *Sender) { doc->PasteFromClipboard();//从剪贴板粘贴文档} void __fastcall TC

19、hildForm::Delete1Click(TObject *Sender) { doc->ClearSelection();//删除选中的文档} void __fastcall TChildForm::Selectall1Click(TObject *Sender) { doc->SelectAll();//文档全选} //文档向左、向右、居中等各种对齐方式响应函数 void __fastcall TChildForm::Left1Click(TObject *Sender) { Left1->Checked = false; Right1->Checked = false

20、 Center1->Checked = false; if( dynamic_cast(Sender) !=0) dynamic_cast (Sender) ->Checked = true; { if (Left1->Checked ) doc->Paragraph->Alignment = taLeftJustify; else if (Right1->Checked) doc->Paragraph->Alignment= taRightJustify; else if (Center1->Checked) doc-

21、>Paragraph->Alignment = taCenter; } } //文档自动换行 void __fastcall TChildForm::Wordwrap1Click(TObject *Sender) { doc->WordWrap = !doc->WordWrap; //toggle word wrapping if (doc->WordWrap) doc->ScrollBars = ssVertical; else doc->ScrollBars = ssBoth; Wordwrap1->Checked = doc->WordWrap; // set men

22、u item check } //设置选中文档的字体 void __fastcall TChildForm::Font1Click(TObject *Sender) {FontDialog1->Font= doc->Font; if (FontDialog1->Execute()) doc->SelAttributes->Assign(FontDialog1->Font); } //子窗口鼠标单击响应函数 void __fastcall TChildForm::FormClick(TObject *Sender) { bool HasSelection; Paste1-

23、>Enabled = Clipboard()->HasFormat(CF_TEXT); HasSelection = doc->SelLength > 0; Cut1->Enabled = HasSelection; Copy1->Enabled = HasSelection; Delete1->Enabled = HasSelection; } //子窗口关闭时事件响应 void __fastcall TChildForm::FormClose(TObject *Sender, TCloseAction &Action) {Action=caFree; } //子窗口关闭时

24、询问事件响应 void __fastcall TChildForm::FormCloseQuery(TObject *Sender, bool &CanClose) { if (doc->Modified) { TMsgDlgButtons temp_set; temp_set<< mbYes<

25、ick(this); break; case mrCancel: CanClose=false; break; } }} void __fastcall TChildForm::FormCreate(TObject *Sender) { PathName = DefaultFileName; } //---------MDIChild.h------------ class TChildForm : public TForm { private:    // User declarations AnsiString PathName;//文档文件和路径名定义 public:        // User declarations void __fastcall Open(const AnsiString AFileName);//文档打开函数声明 virtual __fastcall TChildForm(TComponent* Owner); }; 另外,你自己也可以根据上述开发思路来开发出各种各样的MDI程序,比如,你可以在文档中利用OLE加入图片,声音等多媒体因素,使你的文档更加丰富多彩!

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服