MDI创建流程图

合集下载

ASPEN B-JAC软件在MDI装置换热器设计中的应用

ASPEN B-JAC软件在MDI装置换热器设计中的应用

ASPEN B-JAC软件在MDI装置换热器设计中的应用杜严俊;杨光军;徐宝学【摘要】介绍了Aspen B-JAC软件进行换热器设计的方法,并将该方法成功应用于二苯基甲烷二异氰酸酯(MDI)生产流程开发过程中,取得了良好的应用效果.【期刊名称】《合成技术及应用》【年(卷),期】2007(022)002【总页数】4页(P59-62)【关键词】Aspen B-JAC;换热器;MDA;二苯基甲烷二异氰酸酯;设计【作者】杜严俊;杨光军;徐宝学【作者单位】宁波万华聚氨酯有限公司,浙江,宁波,315812;宁波万华聚氨酯有限公司,浙江,宁波,315812;宁波万华聚氨酯有限公司,浙江,宁波,315812【正文语种】中文【中图分类】TQ342.2二苯基甲烷二异氰酸酯(MDI)是聚氨酯工业中最重要的原料之一,它是由苯胺与甲醛缩合制得多亚甲基多苯基多胺(多胺),再经光气化及一系列的后处理和分离过程制备而来的,包括4,4'-二苯基甲烷二异氰酸酯(纯MDI)以及多亚甲基多苯基多异氰酸酯(聚合MDI)两大类产品[1]。

其中纯MDI主要应用于聚氨酯类的CASE领域(C—coatings,涂料;A—adhesives,胶粘剂;S—sealants,密封材料;E—elastomers,弹性体),目前最广泛地应用于制鞋业和合成革行业;聚合MDI为制造聚氨酯硬质和半硬质泡沫材料的主要原料,广泛用于管道、电子产品、建筑等领域的保温、隔热、隔音、防腐,另外还可用于生产涂料、粘合剂、汽车内饰件、合成木材等[2]。

该产品物性特殊,生产过程复杂,换热器等关键设备的设计也是工程开发的难点。

笔者从事MDI工业化技术研究和开发多年,应用Aspen B-JAC设计的换热器在MDI生产中都能够发挥出良好的性能,该文的主要目的是将笔者这方面的一些经验和方法提出来进行研讨。

1 PEN B-JAC设计流程Aspen B-JAC是Aspen Tech 公司开发的工业换热器设计软件,该设计软件已在国外工程设计公司大量采用,而在中国目前只有环球等少数工程设计公司使用。

mdi_技术及应用

mdi_技术及应用

面积型预测的主要技术方法(2)
U = F ( Z ) 的几何意义
变换式
Derivation 1st On X、Y、XY Direction
Derivation 2st On X、Y、XY Direction Gradient Gauss Curu. Euler Delta Mean Curv. Beltrami Local 0 Local 3 Smooth 0 Isotropy Variance (5) Normgradient T G G UP、 Down 。。。 。。。(共约36种方法)
温度校正因子 初始、终了地层压力
f
Pi ,Pf

i
, f
误差分析自约束技术 (全过程中) 指标:MC ,SD,L,Error-Min.,…… 可信度分布图 (Reliability)
测 井
井约束地震
地震剖面 重、磁、电 地化异常
资料编辑、插值
物性含油气性
G C C
Multi-D Interpretation (MDI)
多参数技术在储集层及含油气性预测中的应用
GC&C ( Global Concord Cooperation,Inc )
内容提要
前言 主要技术原理 主要技术方法 应用实例分析 陆相含油气盆地中有利储层段及含油气性预测应用 海相含油气盆地中有利储层段及含油气性预测应用 油气田开发阶段中的应用 社会效益、部分用户评价 结

提高勘探和开发整体效益的出路之一,在于建
MDI 技术的综合性、集成性
G C C
Core& Log Structure Core& Log

MDI生产现状和研究进展

MDI生产现状和研究进展

MDI 生产现状和研究进展吴礼定(青海盐湖工业股份有限公司,青海西宁810000)摘要:二苯甲烷二异氰酸酯(MDI )是氯碱工业高附加值耗氯产品之一,一种重要的合成有机材料。

本文介绍了二苯甲烷二异氰酸酯(MDI )的生产现状和需求,可以通过光气法、硝基苯还原羰基化法、碳酸二甲酯法等方法合成。

介绍了甲苯二异氰酸酯不同生产工艺的优缺点,并对其发展前景作了简要评述,对今后的研究动态作了展望。

关键词:二苯甲烷二异氰酸酯(MDI );工艺;合成The Production Situation and Research Progress of MDIWU Li -ding(Qinghai Salt Lake Industry Inc.,Ltd.,Qinghai Xining 810000,China )Abstract :Diphenylmethane diisocyanate (MDI )was one of the high value -added products chlorine consumption in chlor -alkali industry ,and was a kind of important synthetic organic materials.The production situation and needs of MDI were introduced ,which can be synthesized by the amine phosgene method ,reductive carbonylation of nitrobenzene meth-od ,and dimethyl carbonate methods.The advantages and disadvantages of different production processes of the toluene di-isocyanate ,and the development prospects of it were described briefly ,and the future research were discussed.Key words :MDI ;process ;synthesis作者简介:吴礼定(1984-):男,硕士,2009年毕业于昆明理工大学化学工程专业,自毕业后一直从事离子膜烧碱及PVC 的生产和氯碱下游产品研发工作。

第九章多文档界面(MDI)

第九章多文档界面(MDI)
创建画笔有两种方法: 一是使用CPen::CreatePen(int nPenStyle,int nWidth,DWORD crColor) 进行初始化。 第一个参数是笔的风格。 nPenStyle可选值有: PS_SOLID 实线 PS_DOT 虚线
PS_INSIDEFRAME 在一个封闭形状的框架内画线,若设定的颜 色不能在调色板种找到且线宽大于1,Windows会使用一种混色。 PS_NULL 空的画笔,什么也不画
9.1多文档界面窗口
MDI 框架窗口为层叠、平铺、排列子窗口和新建子窗口等一些 标准窗口操作提供了缺省的菜单响应。 在响应新建子窗口命令时,框架调用 CDocTemplate::CreateNewFrame() 为当前活动文档创建一个子窗口。 CreateNewFrame() 不仅创建子窗口,还创建与文档相对应的视 图。 下面,我们结合一个绘图程序例子,介绍多文档界面技术。 在此之前,我们首先要介绍一下如何在Windows 中绘图以及 Windows 的图形设备接口(GDI )。
CClientDC(客户区设备上下文)用于客户区的输出,它在构造 函数中封装了GetDC(),在析构函数中封装了ReleaseDC()函数。 一般在响应非窗口重画消息(如键盘输入时绘制文本、鼠标绘图) 绘图)时要用到它。
用法是:
CClientDC dc(this); //this一般指向本窗口或当前活动视图
9.2 图形设备接口(GDI)
光栅输出 光栅图形的输出是指光栅图形函数对以位图形式存储的数据进行 操作,它包括各种位图和图标的输出。 在屏幕上表现为对若干行和列的像素的操作,在打印机上则是若 干行和列的点阵的输出。 光栅图形输出的优点是速度很快,它是直接从内存到显存的拷贝 操作。 缺点是需要额外的内存空间。 Windows在绘制界面时使用了大量的光栅输出。

VB实验4MDI窗体及工具栏

VB实验4MDI窗体及工具栏

第9页
二、预备知识
目的和要求 预备知识
上一页 下一页 退出
(4)在工具栏中插入 按钮并设置图标等属性
选择工具栏“属性页” 对话框中的“按钮”选 项卡, 单击“插入按钮” 按钮, Visual Basic就 会在工具栏上显示一个 空白按钮, 如图所示。 重复此步骤插入多个按 钮。
第10页
二、预备知识
退出
第12页
二、预备知识
目的和要求 预备知识
上一页 下一页 退出
5.工具栏常用方法 Add方法
在工具栏上添加按钮,语法格式如下: <工具栏名>.Button.Add <索引>[,<关键字>,<标题 >,<样式>,<图像>]
Remove方法 删除工具栏上的按钮,语法格式如下:
<工具栏名>.Button.Remove <索引>
Visual Basic允许用户创建自己的工具栏,工 具栏为用户提供了应用程序中最常用的菜单命令 的快速访问方法,进一步增强应用程序的菜单界 面。
创建工具栏,需要使用ActiveX控件中的工具栏 (Toolbar)控件和图像列表(ImageList)控件。 在Visual Basic标准工具箱里没有ActiveX控件, 用时必须添加。添加过程如下:
为MDI应用程序创建工具栏,用工具栏上的按钮 来访问子窗体。
第14页
三、实验内容
目的和要求 预备知识
上一页 下一页
• 实验4-1 • 实验4-2 • 实验4-3
退出
第15页
目的和要求 预备知识
上一页 下一页 退出
实验4-1
【题目】
运用菜单方式访问MDI窗体的子窗体。编制一 个应用程序, 包含一个MDI多文档界面窗体, 并包 含“诗歌欣赏”、“日期显示”及“字效设置”三 个子窗体。在MDI窗体中每次只能显示一个子窗 体, 并运用菜单项选择子窗体的显示。

MDI生产工艺综述

MDI生产工艺综述

MDI生产工艺综述一、MDI的生产工艺流程I.G.Farben于1930s首先制得了4,4'-二苯基甲烷二异氰酸酯(MDI),但由苯胺/甲醛缩合制得的同系混合物光气化制备的方法是1954年由Goodyear首先进行的,遗憾的是Goodyear并未将该方法实现商业化,而后于1960s美国的Carwin/Upjohn、欧洲的Bayer和ICI分别独立地发展了此工艺,使苯胺/甲醛缩合制得同系芳胺混合物,经再光气化、分离,制备MDI和PMDI成为今天普遍所采用的工艺方法。

MDI的生产工艺流程图如下:基本反应过程如下:1.苯胺与甲醛的缩合反应苯胺与25%~35%的盐酸催化剂首先反应生成苯胺盐酸盐溶液,然后滴加37%左右的甲醛水溶液,在80℃下进行缩合反应1~2h,在升高温度达100℃左右时反应1h,进行重排反应,溶液用苛性钠水溶液进行中和,最后经水洗、分层、水洗、蒸馏等步骤制得含不同缩合度的二苯基甲烷二胺(MDA)混合物。

在二胺缩合物中,二苯基甲烷二胺约占混合物的70%,其余多苯基甲烷多异氰酸酯组分约占30%。

根据各制造商生产工艺条件的不同,其混合物的组份不完全相同。

在苯胺与甲醛的缩聚反应中,苯胺氨基上的氢原子比较活泼,易与甲醛进行低温缩合,经分子重排也生成相应的胺的盐酸盐。

在合成中根据原料配比和工艺艺条件的变化,产物为n=0、1、2···等的混合物,当n=0时,在以后的一系列反应后即生成MDI;当n>0时,以后将生成缩合度不等的多苯基甲烷多异氰酸酯(PAPI)。

2.二胺缩合物的光气化反应二胺缩合物的光气化反应,在工业上通常分为低温光气化和高温光气化二段进行。

在低温光气化阶段,主要是使二胺与光气、氯化氢反应生成相应的二胺酰胺盐和盐酸盐。

在高温光气化阶段,主要是使二胺的酰胺盐和盐酸盐转化成相应的异氰酸酯。

在工业生产中,MDI和PMDI产品主要是根据上述反应合成出粗品MDI。

MDI-40A

数字型电磁调速电机控制器 MDI—40系列使用手册扬州伊拓电气技术有限公司前言MDI系列电磁调速电机控制器是全数字型控制模式的新一代产品,采用了行业内最先进微处理器做为控制核心,独特测量算法和控制算法使得产品的性能与传统型的控制器相比有很大提升。

产品强化了可靠性和环境适应性以及客户化和行业化的设计,能够更好地满足各种传动应用的需求。

1产品性能⏹高性能采用最新型的微处理器做为控制核心,独特的测量和控制算法大大提高了产品的性能。

稳速精度: ± 0.5%转速调节分辨率:±1rpm转速测量误差: ±1rpm⏹控制方式产品有多种控制方式进行转速设定控制型号 调试方式MDI-40A系列 两种调速方式(面板旋钮和面板按键)MDI-40B系列 四种调速方式(面板旋钮、面板按键、外部电压调速信号(0-10V)、外部电流调速信号(0-20mA))MDI-40D系列 四种调速方式(面板旋钮、面板按键、外部电压调速信号(0-10V)、外部电流调速信号(0-20mA))⏹多功能上电时的默认转速可设定,用户无须重复调节;缓启动和缓停机功能;最高速和最低速设定;堵转保护功能可以在原电机故障或未起动的情况下,自动切断励磁电压;测速信号异常保护功能,3相测速信号在发生缺相时,自动切断励磁电压;转速可按比例显示,可显示实际物理量(如线速度,计件数);转速信号输出功能(4-20mA电流信号)(此功能只有MDI-40D系列满足);数字PID参数可调节,可适应各种复杂工况。

2第一章MDI系列电磁调速电机控制器介绍1.1产品型号说明1.2 产品铭牌说明产品铭牌位于控制器的底部1.3 产品技术参数型 号 MDI-40系列 MDI-90系列 电源电压 交流电压220V±15% 频率50/60HZ输出最大额定值 直流90V 5A 直流90V 10A 可控电机功率 0.55~37KW 45~90KW 测速发电机 电压转速比≥2V/100 rpm稳速精度 0.5%转速分辨率 1 rpm测速精度 1 rpm调速范围 125~1250r/min (参照电机铭牌)3第二章 产品的安装2.1 产品的外形尺寸图1— 产品外形和尺寸(单位:mm)2.2 产品的安装环境◆避免安装在有油雾、有金属粉尘和多尘埃的场合。

MDI的使用


数据记录视图
• “协议视图”显示时间戳/类型描述/数 值以及单元。
数据记录视图
• 监空视图
数据记录视图
数据记录视图
• 用户可以选择“加载监控条件”或“保存监控”
数据记录视图
GDS
• GDS识别车辆有三种方法;1选制造商---车型----年份---连接-----读VIN码 2 手动输 入VIN码----连接即可 3从记录中双击该车 的VIN 码-----在连接
多功能诊断接口mdi数据记录视图数据记录视图双击gds首页上的快检记录数据记录视图数据记录视图从菜单中选择工具选项然后选择数据记录视图快捡回放快检回放功能用来回放快检数据
多功能诊断接口(MDI)
数据记录视图
数据记录视图
• 在GDS首页上选择快捡记录并点击“检查”
数据记录视图
• 双击GDS首页上的快检记录
数据记录视图
• 从菜单中选择“工具”选项,然后选择 “数据记录视图”
快捡回放
• 快检回放功能用来回放快检数据。在没有 选择要查看的快检之前,页面中央显示为 空白
快捡回放
• 用户须选择一个快件记录,然后点击“回放”摁 钮。在“可用视图“区域中选择一个图标后继续。
数据记录视图
“试值列表视图”显示ECU/名称/数值以及 单元。

MDI简介演示


废气、废水处理
对生产过程中产生的废气、废水进行严格 的处理,确保排放物符合国家和地方的环 保标准,减轻对环境的影响。
05
MDI的应用案例
MDI在聚氨酯领域的应用
泡沫塑料
MDI与多元醇反应,生成聚氨酯泡沫塑料,广泛 应用于家具、床垫、汽车座椅等领域。
弹性体
MDI可用于生产聚氨酯弹性体,如橡胶跑道、鞋 底等,具有良好的耐磨、耐油性能。
MDI的特点
单一应用程序窗口
MDI框架中,所有打开的文档都显示在一个主窗口内,而不是分 散在多个窗口中。
文档窗口独立性
每个文档窗口独立于其他窗口,可以独立地进行最大化、最小化和 关闭操作。
共享菜单栏和工具栏
所有文档窗口共享相同的菜单栏和工具栏,提供一致的用户操作体 验。
MDI的应用领域
文本编辑器:如Notepad等文本编辑 器常采用MDI设计,允许用户同时打 开和编辑多个文本文件。
全球与中国市场
全球MDI市场规模庞大,而中国作为MDI生产和消费大国,市场规模尤为突出。
MDI市场竞争格局
01
02
03
主要参与者
市场上主要的MDI生产商 包括万华化学、巴斯夫、 亨斯迈等国际知名企业。
技术与品质竞争
MDI生产需要高水平的技 术支持和品质保障,竞争 者之间在技术创新和产品 品质上持续角力。
通过技术创新和工艺改进,提高MDI的生产效率,降低成本,增 强市场竞争力。
加强研发与创新
加大科研投入,开发新型MDI产品和应用领域,满足市场需求,推 动产业升级。
拓展国际市场
积极参与国际竞争与合作,拓展海外市场,提高MDI品牌的国际知 名度。
MDI产业发展政策与规划
产业政策扶持

MDI(光气法)

MDI一、MDI的生产工艺流程I.G.Farben于1930s首先制得了4,4'-二苯基甲烷二异氰酸酯(MDI),但由苯胺/甲醛缩合制得的同系混合物光气化制备的方法是1954年由Goodyear首先进行的,遗憾的是Goodyear并未将该方法实现商业化,而后于1960s美国的Carwin/Upjohn、欧洲的Bayer和ICI分别独立地发展了此工艺,使苯胺/甲醛缩合制得同系芳胺混合物,经再光气化、分离,制备MDI和PMDI成为今天普遍所采用的工艺方法。

MDI的生产工艺流程图如下:基本反应过程如下:1.苯胺与甲醛的缩合反应苯胺与25%~35%的盐酸催化剂首先反应生成苯胺盐酸盐溶液,然后滴加37%左右的甲醛水溶液,在80℃下进行缩合反应1~2h,在升高温度达100℃左右时反应1h,进行重排反应,溶液用苛性钠水溶液进行中和,最后经水洗、分层、水洗、蒸馏等步骤制得含不同缩合度的二苯基甲烷二胺(MDA)混合物。

在二胺缩合物中,二苯基甲烷二胺约占混合物的70%,其余多苯基甲烷多异氰酸酯组分约占30%。

根据各制造商生产工艺条件的不同,其混合物的组份不完全相同。

在苯胺与甲醛的缩聚反应中,苯胺氨基上的氢原子比较活泼,易与甲醛进行低温缩合,经分子重排也生成相应的胺的盐酸盐。

在合成中根据原料配比和工艺艺条件的变化,产物为n=0、1、2···等的混合物,当n=0时,在以后的一系列反应后即生成MDI;当n>0时,以后将生成缩合度不等的多苯基甲烷多异氰酸酯(PAPI)。

2.二胺缩合物的光气化反应二胺缩合物的光气化反应,在工业上通常分为低温光气化和高温光气化二段进行。

在低温光气化阶段,主要是使二胺与光气、氯化氢反应生成相应的二胺酰胺盐和盐酸盐。

在高温光气化阶段,主要是使二胺的酰胺盐和盐酸盐转化成相应的异氰酸酯。

在工业生产中,MDI和PMDI产品主要是根据上述反应合成出粗品MDI。

然后,它们必须经过脱气、高真空蒸馏、提纯、分离等后处理工序,生产出纯MDI和不同缩合度的PMDI产品。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4/26/2006在多文档程序中给视图指定标题信息1 在多文档程序中给视图指定标题信息要定制MDI程序中子框架的标题,想来是一个比较简单的事情,按照习惯,SetWindowText就可以设置窗口的标题,然而在实际实现时,却并不是这么回事,首先时调用这个函数的时机,也就是在什么地方调用这个函数,另外就是这个函数真的会起作用么?要弄清楚这个问题,我们首先就要了解MDI程序中子框架的创建过程,在了解了这个创建过程之后,再来考虑解决办法。

其实在InitInstance中首先调用1、BOOL CWinApp::ProcessShellCommand(CCommandLineInfo& rCmdInfo)1.1 AfxGetApp()->OnCmdMsg(ID_FILE_NEW, 0, NULL, NULL),AfxGetApp()实际返回了CMDITestApp的唯一实例,它从CWinApp – CWinThread – CCmdTarget –CObject 派生而来。

我们没有重载OnCmdMsg,所以进入到CCmdTarget的OnCmdMsg 处理中。

1.2 CCmdTarget::OnCmdMsg(UINT nID, int nCode, void* pExtra,AFX_CMDHANDLERINFO* pHandlerInfo),在这里有调用了函数1.3 _AfxDispatchCmdMsg(this, nID, nCode, lpEntry->pfn, pExtra, lpEntry->nSig, pHandlerInfo);又对函数1.4 CWinApp::OnFileNew() 产生调用,然后调用1.5 CDocManager::OnFileNew(),最后调用pTemplate->OpenDocumentFile(NULL);1.6 对于SDI即CDocument* CSingleDocTemplate::OpenDocumentFile(LPCTSTRlpszPathName, BOOL bMakeVisible);对于MDI即CDocument*CMultiDocTemplate::OpenDocumentFile(LPCTSTR lpszPathName, BOOLbMakeVisible);在此要完成CDocument* pDocument = CreateNewDocument(); // 创建文档对象CFrameWnd* pFrame = CreateNewFrame(pDocument, NULL); // 创建框架窗口pDocument->OnNewDocument(); // 初始化文档,在框架窗口创建之后InitialUpdateFrame(pFrame, pDocument, bMakeVisible); //激活新建的框架、文档、视1.1子框架窗口的创建过程在MDI程序中,文档模板类CDocTemplate类的CreateNewFrame成员函数是子框架窗口开始创建的起点(当然,如果说OpenDocumentFile为起点也不为过,因为这个函数也调用CreateNewFrame来创建子框架创建及视图),因此,就从CreateNewFrame函数为起点,来跟踪子框架的创建过程。

于是,我们看到其执行线索是这样的:多文档程序子框架及其视图创建过程1:调用CDocTemplate::CreateNewFrame启动子框架的创建流程1.1:使用动态创建技术,在内存中分配空间,创建CChildFrame对象1.2:以WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE为缺省风格,调用CMDIChildWnd::LoadFrame从资源创建子框架【doctempl.cpp273】1.2.1 调用CFrameWnd::GetIconWndClass注册子框架窗体类【winmdi.cpp619】1.2.1.1 调用CChildFrame::PreCreateWindow【winfrm.cpp662】1.2.1.2 调用AfxRegisterWndClass注册窗体类【winfrm.cpp672】1.2.2 调用CMDIChildWnd::Create函数创建子框架窗体【winmdi.cpp619行】1.2.2.1 调用CChildFrame::PreCreateWindow【winmdi.cpp528】 1.2.2.2 构造MDICREATESTRUCT结构【winmdi.cpp537】1.2.2.3 给MDI的客户窗口发送WM_MDICREATE消息创建子框架来创建边框窗口【winmdi.cpp550】其中又发送了WM_NCCREATE和WM_CREATE消息给子框架对象,这样就导致对应的CMDIChildWnd::OnNcCreate函数、CChildFrame::OnCreate 函数被调用。

1.2.2.3.1 CMDIChildWnd::OnNcCreate【winmdi.cpp1026】 1.2.2.3.1.1 调用CFrameWnd::OnNcCreate,汇编代码 1.2.2.3.1.2 调用PreCreateWindow1.2.2.3.1.3 调用SetWindowLong,设置窗体风格1.2.2.3.2 CChildFrame::OnCreate (如果在CChildFrame 中重载)1.2.2.3.2.1 调用CMDIChildWnd::OnCreate函数1.2.2.3.2.1.1 调用OnCreateHelper【winmdi.cpp1046】1.2.2.3.2.1.1.1调用CWnd::OnCreate 【winfrm.cpp632】汇编代码1.2.2.3.2.1.1.2调用:OnCreateClient1.2.2.3.2.1.1.2.1 调用CreateView 【winfrm.cpp618】创建视图对象1.3 至此已经创建了子框架对象,视图对象;CreateNewFrame函数返回;2 调用CDocTemplate::InitialUpdateFrame初始化边框,该函数在【doctempl.cpp323】2.1调用CFrameWnd::InitialUpdateFrame【winfrm.cpp732】2.1.1将第一个视设置为活动视【winfrm.cpp742】2.1.2给所有相关视图及控件发送WM_INITIALUPDATE 消息【winfrm.cpp749】,这样导致视图的OnInitialUpdate函数被调用2.1.2.1 CXXXView::OnInitialUpdate:(该函数可以被重载的)2.1.2.1.1调用CView::OnUpdate 函数2.1.2.1.1.1调用CView::Invalidate(汇编代码)2.1.3调用视图对象的OnActivateFrame以提供保存焦点的机会【winfrm.cpp753】2.1.4调用CMDIChildWnd::ActivateFrame激活边框【winfrm.cpp764】2.1.5调用CMDIChildWnd::OnUpdateFrameTitle 【winfrm.cpp764】2.1.5.1调用:CMDIFrameWnd::OnUpdateFrameTitle设置父窗体的标题2.1.5.1.1如果具有FWS_ADDTOTITLE风格,则设置标题2.1.5.2如果具有FWS_ADDTOTITLE风格,则设置子框架的标题【winmdi.cpp922】2.2 CDocTemplate::InitialUpdateFrame执行完毕1.2 修改标题的方法方法1:去掉 FWS_ADDTOTITLE的窗体风格从上述的“子框架窗口的创建过程”可以发现,和子框架的标题设置有关的是CDocTemplate::InitialUpdateFrame部分,在该函数执行的最后一步,会调用OnUpdateFrameTitle函数来设置子框架的标题信息。

由于这个函数是窗体显示前的最后一步,因此,要是我们只是简单的直接在视图类中处理WM_INITIALUPDATE消息,即OnInitialUpdate中来调用SetWindowsText来设置子框架的标题的话,所设置的信息又会被OnUpdateFrameTitle所设置的标题覆盖。

不过,从OnUpdateFrameTitle的实现代码可以发现,在该函数中,进行了是否设置了FWS_ADDTOTITLE风格的判断,如果具有该风格,就给窗口设置一个默认的标题信息。

在默认的情况下,CDocTemplate的CreateNewFrame函数以WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE为缺省风格来调用LoadFrame函数创建子框架,这样窗口的风格中就包含了FWS_ADDTOTITLE。

不过,从上面的创建过程,也可以发现,在真正开始创建子框架之前,MFC会调用PreCreateWindow这个可被重载的函数,这样就给我们提供了一个机会来修改子框架的创建风格,于是,我们就找到了一个修改标题的方法,这个方法其实很简单,实施步骤如下:第一步:重载CMDIChildFrame的PreCreateWindow函数,去掉FWS_ADDTOTITLE:cs.style &= ~FWS_ADDTOTITLE; /*取消自动设置标题信息的功能*/ 第二步:处理视图的WM_INITIALUPDATE消息,在其中调用SetWindowText(设置的是文档框架的标题,不是视图)来把标题设置成想要的内容方法2:重载OnUpdateFrameTitle函数该函数是CMDIFrameWnd类的一个虚函数,在以前版本的MFC中,这个函数没有暴露出来,不过到了4.2之后,这个函数就已经可以方便的通过ClassWizard来进行重载了,因此,修改标题的最简单的方法就是重载此函数,在此函数中设置标题的内容。

不过,在重载此方法的时候,可以不调用基类的方法,如果要调用,则自己设置标题信息的代码一定要放置在基类方法的调用之后,自己设置的标题才不会被基类方法设置点标题覆盖。

相关文档
最新文档