08_mfc

合集下载

C_C08交换机维护培训教材

C_C08交换机维护培训教材

第一章C&C08系统概述1311.1C&C08-128模基本组成模块1311.1.1 各模块的功能与连接1321.1.2 C&C08交换系统的组网1331.2C&C08-128模中心模块总体介绍1341.2.1 系统结构1341.3C&C08-128模硬件配置1361.3.1 标准物理配置1361.3.2 主控机柜配置1361.3.3 接口机柜配置1371.3.4 共享资源机柜配置1381.3.5 业务处理机柜配置1391.3.6 中心模块的特点1391.4C&C08-128模中心模块机框及单板描述1401.4.1 CPM模块1401.4.2 中央交换网框(ET框)1421.4.3 时钟框(STM框)1431.4.4 通信控制框(CCM框)1431.4.5 线路接口框(LIM框)1441.4.6 业务处理框(SPM框)1471.4.7 共享资源框(SRM框)1491.5C&C08-128中心模块的功能结构1501.5.1 中心模块内部连线1501.5.2 中央交换网的功能结构1501.5.3 通信控制网的功能结构1501.6C&C08-128终端系统1511.7C&C08-32模AM/CM基本结构1521.7.1 32模的 AM/CM配置1541.7.2 32模的 AM/CM特点1541.7.3 AM/CM结构1551.8SM的功能和种类1561.8.1 机框及单板描述1561.8.2 主控框1571.8.3 用户框1621.8.4 数字中继框(DT框)1631.8.5. SM的信令流程和语音流程1641.8.6 资源配置原则1651.9案例分析167第二章日常维护1702.1维护手册使用1702.2告警1702.2.1告警概述1702.2.2集中告警板1712.2.3告警台的一般操作步骤1722.2.4告警分类1752.2.5常见告警信息示例1762.3测试系统1792.3.1 测试内容1792.3.2例行测试的操作1802.3.3立即测试的的操作1812.3.4 ISDN数字用户测试1822.4例行维护工作1832.4.1各模块日常运行状况维护操作指导1832.4.2日常环境监控维护操作指导1852.4.3计费日常维护操作指导1852.4.4中继电路及信令链路日常维护操作指导1862.4.5时钟系统日常维护操作指导1862.5重大维护操作命令指引1872.5.1重要日常维护类操作指引1872.5.2重要命令操作指引189第三章局数据和用户数据2343.1局数据原理2343.2中继数据管理2343.2.1 增加呼叫源(一般已设定,可参考用户数据中说明)2353.2.2增加一个目的信令点(七号信令)2353.2.3 增加一个局向2353.2.4 增加一个子路由2363.2.5增加路由2363.2.6 增加时间索引数据2363.2.7增加路由分析数据2363.2.8 增加呼叫字冠指向该路由2363.2.9增加中继群2373.2.10增加中继电路2373.3信令链路数据2383.3.1新增MTP目的信令点2393.3.2 新增MTP链路集2393.3.3 新增MTP路由2403.3.4新增MTP链路2403.4用户数据2413.4.1 ASL用户数据管理2423.4.2增加一个2B+D用户2433.5新增PBX数据2443.6CENTREX群数据2443.7话务控制246话务控制原则:246实施话务控制的要素246实施话务控制原则2473.8案例分析247第四章计费系统2504.1计费功能和原理2504.2计费局数据及操作维护2514.2.1 计费情况数据2514.2.2 计费情况应用2524.2.3 日期类别、附加费与计次表2534.3话单管理系统2544.3.1 取话单操作2554.3.2 话单查询操作2564.3.3 话单文件的存放2584.4案例分析258第五章话务统计2605.1C&C08话务统计的操作和维护2605.1.1 创建全局话务话统任务2615.1.2 创建承载对象话统任务2625.1.3 创建公共部件话统任务2635.1.4 创建控制部件话统任务2635.1.5 创建信令接口话统任务2645.1.6 创建呼叫记录话统任务2645.1.7 创建内部运行情况话统任务2645.1.8 创建最值话统任务2655.1.9 智能话统任务2655.2话务统计的需求和简单使用命令2655.3案例分析268第六章七号信令系统的操作和维护271 6.1七号信令链路的操作和维护2716.2七号信令消息跟踪操作2726.2.1 七号信令跟踪2726.2.2 七号信令消息跟踪回顾2746.2.3 七号信令相关状态查询2746.2.4 相关局向七号链路查询2756.3应急处理流程:2756.4案例分析280第七章终端系统的操作维护281 7.1BAM服务器应用软件2817.1.1 BAM Manager进程管理器2827.1.2 BAM服务器业务进程2837.1.3 通讯网关工具2847.1.4 WS客户端业务维护系统2847.2维护系统工具操作2857.2.1 系统维护操作2857.2.2 配置维护操作2877.2.3 跟踪维护操作2907.2.4 七号信令维护操作2937.3系统备份操作2957.3.1 自动备份设定2957.3.2 手工备份BAM数据库和注册表2967.4案例分析299第八章软件补丁的管理3018.1C&C08补丁的总体介绍3018.2静态补丁介绍3018.3动态补丁管理3028.3.1 SM/SPM部分3028.3.2 AM部分3048.4BAM部分补丁管理3048.4.1 服务器端补丁304 8.4.2 客户端补丁305第一章C&C08系统概述学习目的:1.掌握C&C08数字程控交换机系统基本机构,其中分为32模交换系统和128模交换系统。

mfc单选按钮的用法

mfc单选按钮的用法

mfc单选按钮的用法MFC(Microsoft Foundation Classes)单选按钮是MFC库提供的控件之一,用于用户在一组选项中单选一个选项。

以下是MFC单选按钮的用法:1. 在对话框资源编辑器中,在所需的位置绘制一个单选按钮控件。

2. 为单选按钮控件分配一个唯一的ID。

可以在属性窗口的ID栏中指定ID值。

3. 定义一个成员变量来引用该单选按钮控件。

可以在对话框类的头文件中添加类似如下的声明:```CButton m_radioBtn;```4. 在DoDataExchange函数中添加数据交换代码,将成员变量与对应的单选按钮控件关联起来。

可以在对话框类的源文件中添加类似如下的代码:```DDX_Control(pDX, IDC_RADIO_BTN, m_radioBtn);```5. 在需要访问单选按钮控件的地方使用成员变量来操作该控件。

例如,可以使用以下代码获取选中的单选按钮的状态:```BOOL bChecked = m_radioBtn.GetCheck(); // 返回值为BST_CHECKED表示选中,BST_UNCHECKED表示未选中```6. 可以使用以下代码来设置单选按钮的状态:```m_radioBtn.SetCheck(BST_CHECKED); // 设置为选中状态m_radioBtn.SetCheck(BST_UNCHECKED); // 设置为未选中状态```注意事项:- 单选按钮可以按组进行分组,以确保用户只能选择该组中的一个选项。

可以在对话框资源编辑器中创建多个单选按钮并将它们放置在一起作为一个组;- 单选按钮的选中状态可以通过关联的成员变量进行保存和操作;- 单选按钮控件的外观和行为可以通过修改其属性进行自定义,如文本、字体、颜色等。

可以在属性窗口中选择相应的选项进行修改。

现代交换技术期末试题库.docx

现代交换技术期末试题库.docx

《现代交换原理》综合练习题一填空题1. 电话通信网的基本组成设备是终端设备、传输设备、交换设备。

2.电话机的基本组成部分有通话设备、信令设备和转换设备。

3.交换机的硬件系统由用户电路、中继器、交换网络、信令设备和控制系统这几部分组成。

4 .我国目前的两级长途网由省级交换中心DC1 和本地网长途交换中心DC2两级组成。

5.按照信令传送通路与话路之间的关系来划分,信令可分为随路信令和公共信道信令两大类。

6.S1240交换机由数字交换网(DSN)和终端控制单元,辅助控制单元7.程控数字交换机的硬件结构大致可分为分级控制方式、全分散控制方式和基于容量分担的分布控制方式三种。

8.基于容量分担的分散控制方式的交换机主要由交换模块、通信模块组成。

和管理模块三部分组成9.语音信号的数字化要经过抽样、量化和编码三个步骤。

10.话音信号的 PCM编码每秒抽样8000次,每个抽样值编码为8比特比特,每一路 PCM话音的传输速率是64kb/s。

11.数字交换网络的基本功能是完成不同复用线之间不同时隙内容的交换。

12.12. T 接线器的基本功能是完成同一条复用线(母线)上的不同时隙之间的交换的交换。

13.13. T 接线器的输入控制方式是指T 接线器的话音存储器按照控制写入,顺序读出方式工作。

14.T 接线器采用输入控制方式时,如果要将 T 接线器的输入复用线时隙7 的内容 A交换到输出复用线的时隙20,则 A应写入话音存储器的20号单元,控制存储器的7号单元的内容是20。

控制存储器的内容在呼叫建立时由计算机控制写入的。

15.空间( S)接线器的作用是将某条输入复用线上某个时隙的内容交换到指定的输出复用线的同一时隙。

(或完成在不同复用线之间同一时隙内容的交换)。

16.S 接线器主要由一个连接n × n 的电子接点矩阵和控制存贮器组以及一些相关的接口逻辑电路组成。

17.T 接线器主要由话音存贮器 SM、控制存贮器 CM,以及必要的接口电路(如串 / 并,并 / 串转换等)组成,18.T 接线器的话音存贮器 SM用来存贮话音信号的 PCM编码,每个单元的位元数至少为8 位,控制存贮器CM用来存贮处理机的控制命令字,控制命令字的主要内容是用来指示写入或读出的话音存储器的地址。

现代交换技术题库

现代交换技术题库

《现代交换原理》复习题一.单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题后的括号内。

)1. 指出下列错误的长途区号: ( )A. 10B. 211C. 351D. 5102.信令单元为链路状态信令单元, 此时信令单元中的长度表示语LI=( )A. 0 B 1--2 C. 3--63 D. 63以上3. TST数字交换网络,初级T入线复用度128,A-B方向选取的内部时隙为TS,B-A方向内部时隙按相差半帧原则选择,应选择的时隙为()A、TS16B、TS8C、TS136D、TS684. 在程控交换机中处理一个呼叫接续的程序在处理机上是()A、连续执行的B、按照一定周期执行的C、被与该呼叫有关的事件启动执行的D、随机执行的5. 设从A局(发端长活局)至E局(终端长话局))需经三级转接(B、C、D局),主叫为普通用户,被叫号码为08,当MFC信令采用端到端的传送方式时,A局向C局发的号码是()A、023 B 、0232 C、023234 D、086. 局间中继采用PCM传输时,采用数字型线路信令。

每个话路的一个线路信令要隔()才传送一次。

A 125usB 256usC 2msD 16ms7. ATM中信元定界是依据()来完成的。

A 53个字节的信元计数B 标志符C 信头中HECD 信头前4个字节与HEC的关系8.ISUP消息由路由标记、电路识别码、消息类型编码、必备固定长度参数部分,必备可变长度参数部分和任选参数部分组成。

其中,( )用来供MTP的第三级选择信令路由和信令链路。

A.路由标记B.电路识别码C.消息类型编码D.必备固定长度参数部分9. ATM中用户端虚通道(VP)最多可达()条。

A、24B、28C、212D、21610. 在交换机软件中优先级最高的程序是()A、故障级程序B、信令接收及处理程序C、分析程序D、时钟级程序11. 我国国内信令网,信令点的编码计划是()位二进制数。

交换机务员(08机)题库

交换机务员(08机)题库

通信管理局技能鉴定题库-交换机务员(08机)一、单项选择题1、32模交换机,由于需要对各模块加数据,采用三级再启动的方式,有如下7个步骤:1)关闭备份软开关2)更新主机计次表和统计话单后立即取话单3)三级再启动MPU B板至单板开工4)通话及计费等重要功能测试5)待两块MPU全部三级启动完成并开工后,打开备份软开关6)三级再启动MPUA板7)倒换MPU板请按正确的操作顺序进行选择(假设升级前MPUA主用,MPUB备用)______。

(B)A、1>2>3>7>4>5>6B、2>1>3>7>4>6>5C、4>1>2>3>7>6>5D、2>1>3>7>4>5>62、C&C08交换机主叫显示功能采用的信号方式是______。

(A )A、FSKB、DTMFC、DSS1D、脉冲3、32模交换机RO3T版本指定占用中继的操作方法正确的是______( D )。

A、*66*01*00*00003#6660000B、*66*1*0*3#6660000C、*66*01*0*00003*6660000#D、*66*01*0*00003#66600004、在32模块中增加补充信令时,以下关于“主叫是否转译”的解释正确的是。

(D)A、A呼叫B,若B出局转移到C,如C要主叫号码,且A局“主叫是否转译”为“是”,则此时送的主叫号码为中继默认号码。

B、A呼叫B,若B出局转移到C,如C要主叫号码,且A局“主叫是否转译”为“是”,则此时不送主叫号码。

C、A呼叫B,若B出局转移到C,如C要主叫号码,且A局“主叫是否转译”为“是”,则此时送的主叫号码为A。

D、A呼叫B,若B出局转移到C,如C要主叫号码,且A局“主叫是否转译”为“是”,则此时送的主叫号码为B。

5、128模块动态补丁可通过下发命令加载,但补丁文件必须先放在______。

MFC功能包

MFC功能包

MFC功能包在VS08 SP1中所含的VC08的MFC功能包(MFC Feature Pack for V isual C++ 2008)中,包含了对MFC库的扩展,以支持时髦的现代用户界面(UI)元素,如Office Fluent(流畅)UI、停靠窗口和MDI选项卡(tab)窗口(似Visual Studio 2005/2008)、增强型工具条、丰富的新控件集、支持总体视觉样式(overall visual style)、支持桌面报警(desktop alerts)等等。

程序员可以利用该功能包编写具有类似于微软公司的新版Microsoft Office、V isual Studio或Internet Explorer界面视觉样式的应用程序。

MFC功能包的改进主要体现在新型用户界面上,主要包括:功能区(ribbon)、选项卡(tab)窗口和窗格(pane)、视觉样式切换(换肤)、可停靠与自动隐藏的控制条和窗格等。

此功能包的帮助信息,位于MSDN的“目录\开发工具和语言\Visual Studio文档\V isual C++\参考信息\Libraries Reference\MFC Feature Pack for V isual C++ 2008”(主要内容在其中的“Reference\Classes”子目录中)。

5.1 新增功能下面列出MFC功能包在若干方面增加的具体新功能:1.菜单(Menu)●微软Office样式的菜单。

●O ffice样式的菜单条——你可以停靠,而且还可以用图片来定制。

●菜单动画——图片淡入/渐显(fades in)、展开(unfolds)或滑进视图(slides into view)。

●菜单阴影。

●菜单工具提示(tooltips)。

●可滚动菜单。

●自绘(owner-drawn)菜单图片。

●位于菜单左边的自绘标识(logo)。

●可在运行时修改菜单字体。

●M RU(Most Recently Used,最近使用)列表和窗口列表。

MFC对话框几个对话框程序例子建立对话框与相应程序相关联

MFC对话框几个对话框程序例子建立对话框与相应程序相关联

MFC对话框和对话框类几个对话框程序例子建立对话框与相应的程序相关联如何建立对话框与相应的程序相关联:在MFC中,对资源的操作都是建立相关的类来完成的;所以我门先NEW 一个对话框资源然后建立他的类与相应的应用程序相关联就可以;步骤:1 NEW 一个对话框资源2 在资源上选择 Classwarrzd上创建一个新的类(或在资源上双击左键)3 起名字!(注意文件名将会去掉C 例如我门的名字叫 CDaiDlg那么文件名是 DaiDlg);对话框的俩种类型:1 模态对话框(特性:当建立模态对话框时,将不允许用户点击对话框以外的控件后应用程序本身,也就是说当模态对话框建立时应用程序停止运行而只运行对话框,所以模态对话框是可以使用局部变量的定义方法的!)模态对话框是比较方便的一种对话框~建立函数:int CDialog::DoMadol() //注意他是CDialog类成员也就是说想使用先建立一个 CDialog 对象吧如果我门想要在View类中建立一个 CDialog对象不要忘了要在View的Cpp 文件中包含 CDialog.h2 非模态对话框(特性与模态的相反)使用成员函数 BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );nIDTemplate 为对话框的ID号pParentWnd 拥有这个对话框的对象指针,如果是NULL 为默认的主应用窗口也就是 Frame应用窗口注意如果我门在使用Create创建非模态对话框时要调用一个函数来显示这个对话框CWnd::ShowWindow(SW_SHOW);不仅这样非模态对话框时不能是局部变量!完整代码: CDialog dlg;dlg.Create(ID,this);dlg.ShowWindow(SW_SHOW):对ShowWindow的发现: ShowWindow是CWnd的成员函数是改变窗口的显示属性(包括Hide Show等)ShowWindow这一函数是改变属性同样在创建一个窗口时(窗口包括很多,CButton也是一个窗口!)可以直接给他赋予属性 WS_VISIBLE (可见的)等属性也可以解决改变窗口之后更新窗口的问题显示出新窗口的问题~!对于俩种对话框的销毁;模态对话框中OnOK的成员函数中有对模态对话框的 EndDialog();来销毁而非模态的对话框时 OnOK不能销毁对话框而我门需要对OnOK函数进行覆盖调用DestryWindow;做一个对话框的小程序,在对话框上动态增加一个按钮:在这要强调一下动态的增加某种资源是需要把资源对象声明成类的成员这样才可以(不然被析构了建立了也就没有效果了)而资源对象是对象资源是资源只有吧资源和对象联系起来这个的东西才有实际的意义,我门才能对他进行操作,而把资源和对象联系起来有俩个函数 LoadMenu 和CreateMenu (当然有些类是不存在 Load函数的例:Button类) Load函数是将一个已经被我门在资源视图中创建好的东西与对象联系而Create函数是直接创立一个新的东西(而直接创立时我门还需要给他一些这样东西的属性所以使用Create函数时总是件另人讨厌的事情~)更重要的事情是:一个对象只能与一个资源相联系如果你想把这个已与资源联系的对象与另一个资源联系起来那必须先调用DestoryWindow()这个资源然后在做新的联系;静态文本框的操作:刚刚建立的静态文本框是不可以做消息响应的(一般也不需要这么去做)而我门想要去用静态文本框的消息就要改边文本框的 ID (因为一般不给文本框添加消息响应文本框的的ID都是一样的)并且要把属性->样式(Styles)->通告(Notify)打上对号!!几个有用的函数:获得窗口的文本CWnd::int GetWindowText(CString &str);CWnd::int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const; 参数str是放置文本的对象!lpszStringBuf是一个字符串的指针,nMaxCount 到大的最大字符数同样使用 SetWindowText(CString str)SetWindowText(LPCTSTR lpszString);来设置文本获得对话框上控件的指针(控件包括了Button,静态文本等等!)CWnd::CWnd* GetDlgItem( nID )使用ID号来获取控件的指针!从而进行操作!从编辑框得到数据的几种操作1 使用GetDlgItem( nID )->GetWindowText( )然后把字符转换为我门所要的东西(使用 atoi,itoa 的转换函数)这几个函数所要注意的问题使用函数前一定要确定这个函数是对谁操作!对谁操作要获取谁的指针!!GetWindowText(LPTSTR lpszStringBuf, int nMaxCount )这个函数参数lpszStringBuf所要存储的指针 nMaxCount 是最大得到多少个字符~使用代码例子:char str[10];GetDlgItem( nID )->GetWindowText(str,10 );//注意第一个参数使用的是指针aoti itoa 函数介绍:(介绍前的感想,做ACM时看到程序就要将程序分成一个一个功能函数,然后将功能函数做好,从来没有想过使用他人做好的函数,而现在学习了MFC这套教程,养成的第一个习惯就是寻找自己想要的函数在MSDN中,然后再自己编写算是一种偷懒的行为吧,估计在以后的编程中,也要养成先寻找和想要的类模型差不多的类然后在通过继承派生来得到想要的类模型,这可能就是代码重用的本质吧 ~ MS就是一大堆会偷懒的编程员 ~呵呵)double atof( const char *string );int atoi( const char *string );__int64 _atoi64( const char *string );long atol( const char *string );这四个函数不用多说了,要注意的就是参数的问题,不要看参数名字叫 string 就是一个CString 成员而是 char*(指针) 也就是数组的名字返回型是相应转化的数据类型;(这是一个不错的函数)不过要注意他是需要包含头文件Routine Required Header Compatibilityatof <math.h> and <stdlib.h> ANSI, Win 95, Win NTatoi <stdlib.h> ANSI, Win 95,Win NT_atoi64 <stdlib.h> Win 95, Win NTatol <stdlib.h> ANSI, Win 95, Win NT还可以反过来 itoa, ftoa等等做一个介绍char *_itoa( int value, char *string, int radix );value要转换的数char *string 一个buffer 接受转换后的字符串int radix 十进制啊二进制 ...==(还有这里的 atoi 的 a 是ASCII的 A 这就解释了为什么不是ctoi~)2 使用函数GetDlgItemText( nID,LP... ),SetDlgItemText(nID,LP...)(这函数不仅长的象 GetDlgItem 和 GetWindowText 的混合体功能更是相同...又个偷懒的杰作!)int GetDlgItemText( int nID, LPTSTR lpStr, int nMaxCount ) const;int GetDlgItemText( int nID, CString& rString ) const;void SetDlgItemText( int nID, LPCTSTR lpszString ); 使用也是一样的!比那个能方便点~!3 又一个混合体函数 GetDlgItemInt();; SetDlgItemInt()在2的基础上来atoi都不用了!UINT CWnd:: GetDlgItemInt( int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE ) const;nID ID号lpTrans 如果NULL 那么不会给出错误的提示bSigned 是否是有符号的数字(就是是否去转化符号“-”) TRUE就是有符号啦!!void SetDlgItemInt( int nID, UINT nValue, BOOL bSigned = TRUE ); nValue 是你想要在DlgItem输出的数字;4 使用资源来关联变量的方式来控制数据交换(这才是重点,因为他不只提供了对数据错误的提示功能还增加了控件与资源的联系当然我门需要了解框架所带给我门的东西;)在控件上使用ClassWarrzd 选择第2个选项卡!(Member Variables)对相应的 ID 号进行资源与数据的联系:观察一下ClassWarrzd给我门在代码里家了些什么:1 在头文件中加了// Dialog Data//{{AFX_DATA(CTextDlg)enum { IDD = IDD_DIALOG1 };int m_num1;int m_num2;int m_num3;//}}AFX_DATA这是数据交换的宏2 在构造函数里给这几个成员变量初始化://{{AFX_DATA_INIT(CTextDlg)m_num1 = 0;m_num2 = 0;m_num3 = 0;//}}AFX_DATA_INIT3 在void CTextDlg::DoDataExchange(CDataExchange* pDX)函数中增加了数据交换声明{CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CTextDlg)DDX_Text(pDX, IDC_EDIT1, m_num1);DDX_Text(pDX, IDC_EDIT2, m_num2);DDX_Text(pDX, IDC_EDIT3, m_num3);//}}AFX_DATA_MAP}对与 void CTextDlg::DoDataExchange(CDataExchange* pDX) 的使用用来数据交换!!这个函数是被框架调用,用来交换和验证数据的函数!这个函数从来不被直接掉用而是通过调用UpdateData()函数来调用这个函数来交换和验证数据的(这句的意思是DoDataExchange 接口是不对我门开放的我门想要掉用 DoDataExchange这个函数必须用UpdateData()来间接调用)BOOL UpdateData( BOOL bSaveAndValidate = TRUE );介绍:参数问题:bSaveAndValidate=TRUE 时数据开始交换(也就是说我门对该变量的操作是生效的)而当他是 FALSE 时数据不再交换而是初始化这个函数(也就是把这个变量的操作失效不过可以在屏幕上进行显示!)通过改变这个参数的值我门可以控制数据的交换或是数据的显示~这是很重要的;!错误的数字使得我门的操作成为无效;~还要说的一点是当创建的是模态对话框时(DoModal)时系统会自动把这个参数变成 FALSE 也就是说我门初始时是不能改变变量的例子代码: UpdateData();m_num3=m_num1+m_num2;UpdateData(FALSE);//我门也可以让控件关联一个控件变量然后在调用他的成员函数进行操作(教程里有讲不过觉得有些多余,也许在其他类型的程序中可能要有用,注意这种方法ClassWarrzd的使用方法)函数 SendMessage( );(注意是SendMessage 而不是SetMessage)是一个发送消息的函数使用....不详,查查SDK API什么的吧~ 功能很强大static LRESULT SendMessage( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )关于SendMessage()函数的说明发送一个响应的消息message,然后用wParam,lParam来接受我门想要的东西(当然这个要取决于我门发的是什么消息现在已知的消息是:WM_SETTEXT,WM_GETTEXT去MSDN 看看)而SendMessage 在API 和 MFC 中都有要注意是谁调用他的原始问题;SendMessage()的变种(向对话框中的子控件发送消息):LRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wParam = 0, LPARAM lParam = 0 ); 用法基本相同对于获取编辑框复选的操作:向编辑框发送一个 EM_GETSEL (同样也是 EM_SETSEL) 要使用SendMessage()来发送//还要注意的是我门已经把复选设置好了有的时候也是看不见效果的,因为我门在操作时点击了按钮或者其他的操作使得焦点没有在我门所设置那个Item上所以我门是看不见结果的我门还要增加一个操作是用函数改变焦点:CWnd* CWnd::SetFocus( );没有参数返回值是以前那个带有焦点的指针;(对与复选最常用的是复选所有的东西,这样我门要把 SendMessage 的wParam =0,lParam =-1)总结:怎么样改变对话框的大小用来增加新的功能?对话框的矩形坐标可以利用一个图形控件和 SetWindowPos 来改变先要知道对话框的矩形坐标通过控件得到(GetWindowRect())矩形坐标 ...这样我门就能知道需要改变什么矩形坐标了void GetWindowRect( LPRECT lpRect ) const; 函数参数 lpRect 用来储存矩形坐标BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags ); 本来是用来改变Window Z-order 的(什么是 Z-order简单说就是显示窗口的顺序)在 79 710 俩课中使用的SDK 函数不再介绍(因为不明白!!)使用default按钮的特性来增加对话框对回车(0x0d)按键响应的操作我门用一个设置输入焦点随回车变化的例子来说明;因为在重载OnOK函数时 OnOK还是会调用基类的 OnOK函数(OnOK函数会自动关闭对话框)而我门不希望我门在输入回车时关闭对话框所以我门将它转化为注释!然后使用函数获取当前焦点的句并 Wnd* GetFocus( )来选择GetNextWindow(UINT nFlag = GW_HWNDNEXT )然后在使用SetFocus( );完整代码:(在Dialog中的 OnOK 函数中)GetFocus()->GetNextWindow()->SetFocus();这个代码逻辑上是可以的,不过执行起来会发生错误,如果一直回车下去回造成程序崩溃;(哪有那么都 GetNext呀?)我门要使用Tab功能的函数来完成这个功能就不会出错了~CWnd* GetNextDlgTabItem( CWnd* pWndCtl, BOOL bPrevious = FALSE ) const;pWndCtl开始时的窗口bPrevious = FALSE 向下走;如何查看 Tab 顺序:布局(layout)-> Tab顺序(Tab Order)OK按钮不管存在不存在都会执行 OnOK函数他的ID 号是IDOK(不是ID_OK 哦)孙鑫MFC教程笔记(菜单.对话框)2007-08-11 20:03对话框先要对消息的传送进行分析:消息分为三类标准消息,命令消息,通告消息;标准消息:是除WM_COMMAND以外的所有以WM_开头的消息(WM_Char,WM_Move 等)命令消息:WM_COMMAND 包括了来自菜单、加速键或工具栏按钮的消息。

mfc中字体设置详解

mfc中字体设置详解

mfc中字体设置详解展开全文为了能选用不同的字体和大小来输出文本串,须使用作为GDI对象的 CFont类。

Windows和常用的字处理软件(如Word)、绘图软件(如CorelDraw)等应用软件会提供多种与设备无关的字体,主要是TrueType轮廓字体。

CFont类是CGDIObject的派生类:CObject→ CGDIObject→ CFont。

只有一个缺省构造函数CFont( );在CFont类中,必须用字体创建成员函数CreateFont[Indirect]或CreatePointFont [Indirect]来初始化。

其中的CreatePointFont提供了创建字体的一种简单方法:BOOL CreatePointFont( int nPointSize, LPCTSTR lpszFaceName, CDC* pDC = NULL );参数nPointSize为字体的大小,以0.1点(像素/墨点/磅数)为单位,如汉字的字号与nPointSize值及磅数的对应关系见下表:参数lpszFaceName为字体名称字符串的指针。

若pDC非空,则系统会将设备单位点自动转换为pDC中的映射模式所指定的逻辑单位,如CFont font;font.CreatePointFont(160, '宋体');注意:CFont类的这些逻辑字体创建函数,并不是从无到有创建一个新的GDI字体,而只是从GDI的物理字体库中选择与所设置参数最匹配的字体。

为了方便用户选择各种字体参数,可使用字体公用对话框:汉字的字号与磅数字体公用对话框使用字体公用对话框需要用到CFontDialog类。

CFontDialog类的构造函数为CFontDialog( LPLOGFONT lplfInitial = NULL, DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS, CDC* pdcPrinter = NULL, CWnd* pParentWnd = NULL );其中,lplfInitial为逻辑字体结构的指针(可用CFont的成员函数GetLogFont来获得,参见《Windows程序设计》),dwFlags为对话框的可选参数,CF_EFFECTS表示对话框中有删除线和下划线复选框与选择颜色的下拉式组合框,CF_SCREENFONTS则使得对话框中只列出系统支持的显示字体。

MFC网络编程

MFC网络编程

2.MFC框架对于六个网络事件的处理 当上述的网络事件发生时,MFC框架作何处理 呢?按照Windows的消息驱动机制,MFC框 架应当把消息发送给相应的套接字对象,并调 用作为该对象成员函数的事件处理函数。事件 与处理函数是一一映射的。
在afxSock.h文件中的CAsyncSocket类的声明中, 定义了与这六个网络事件对应的事件处理函数。
关闭套接字 1.使用CAsyncSocket类的Close成员函 数 格式:virtual void Close( );
2.使用CAsyncSocket类的ShutDown() 成员函数 使用CAsyncSocket类的ShutDown()成员 函数,可以选择关闭套接字的方式。将套接字 置为不能发送数据,或不能接收数据,或二者 均不能的状态。
CSocket类,从CAsyncSocket类派生,是对 Windows Sockets API 的 高 级 封 装 。 CSocket类继承了CAsyncSocket类的许多成 员函数,用法一致。CSocket类的高级表现在 三个方面: (1)CSocket结合archive类来使用套接字。
(2)CSocket管理了通信的许多方面,如字 节顺序问题和字符串转换问题。 (3)CSocket类为Windows消息的后台处理 提供了阻塞的工作模式。
发送与接收流式数据 当服务器和客户机建立了连接以后,就可以 在服务器端的连接套接字对象和客户端的套 接字对象之间传输数据了。对于流式套接字 对象,使用CAsyncSocket类的Send成员函 数向流式套接字发送数据,使用Receive成 员函数从流式套接字接收数据。
1.用Send成员函数发送数据
virtual void OnConnect(int 对应 FD_CONNECT事件

MFC的对话框中添加右键菜单

MFC的对话框中添加右键菜单
三、具体实现方法
用ClassWizard中的“Add Windows Message Handler”功能添加对NM_RCLICKT消息的响应函数,函数中代码如下,注释很详细,在vc6+win2000环境下调试成功:
void CMyView::OnRclick(NMHDR* pNMHDR,LRESULT* pResult)
TPM_LEFTBUTTON 连续按? 右键不会连续弹出菜单,鼠标右键不可用于选定菜单项
TPM_RIGHTBUTTON 连续按鼠标右键会连续弹出菜单,鼠标右键可用于选定菜单项
x,y均为屏幕坐标
lpRect 菜单所占的区域。如果为NULL,当用户在菜单以外的区域按鼠标键时,菜单会消失
CDialog::OnRButtonUp(nFlags, point);
}

MFC的对话框中添加右键菜单2010-01-24 14:55
一.在资源创建对话框中,选择Menu项并单击New按钮自动创建ID为IDR_MENU1的菜单,
为该菜单添加一个菜单项File,并在File菜单项下添加Cut,Copy和Paste三个菜单
(为这三个菜单添加消息响应代码)
如:
void CExampleDlg::OnCut()
menu.GetSubMenu(0)->
TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON, point.x,point.y, this) ;
//弹出自定义右键菜单
}
****************************
2、GetSubMenu函数
功能:此函数用于得到子菜单的指针。

MFC文件夹打开的操作

MFC文件夹打开的操作
if (SUCCEEDED(SHGetMalloc(&pMalloc)) && pMalloc)
{
pMalloc->Free(pidl);
pMalloc->Release();
}
}
m_FileDir = szFolder;//选择的文件夹路径
CEdit* cfolder;
cfolder = (CEdit*) GetDlgItem(flidersdit);
str1 = dlg.GetFileName();
CEdit* cfolder;
cfolder = (CEdit*) GetDlgItem(flidersdit);
cfolder->SetWindowText(str1);
// + 1
}
效果图
3,打开文件夹,选择所选择的文件夹,获取文件夹的路径
cfolder->SetWindowText(str);
// + 1
}
效果图
CFileDialog dlg(TRUE,NULL,NULL,NULL,NULL);
if(dlg.DoModal()==IDOK)//
{
CString str,str1;
str = dlg.GetPathName();
cfolder->SetWindowText(szFolder);
OnPaint();
TRACE("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");

输出能量70 kJ脉宽20 μs的爆磁压缩发生器

输出能量70 kJ脉宽20 μs的爆磁压缩发生器

输出能量70 kJ脉宽20 μs的爆磁压缩发生器刘伟;孙奇志;刘正芬;池原;戴文峰【期刊名称】《强激光与粒子束》【年(卷),期】2009(21)11【摘要】A two-stage helical explosive magnetic flux compression generator (type 08 MFCG) is described in this paper. The generator design parameters were obtained from calculation by computation code BCYSSYS for HEMO pulsed-power source based on equivalent circuit. Experimental results show that, type 08 MFCG can output pulse current up to 220 kA and energy up to 72 kJ on 3 μH inductance load within the effective pulse duration of 21 μs, and the experimental results are compared with the calculated ones, which demonstrates the feasibility of the code BCYSSYS for generator design.%利用等效电路模型下的螺线圈型爆磁压缩脉冲功率源计算程序BCYSSYS,通过参数选择,设计了一种两级螺线圈型爆磁压缩发生器(08型),并进行了电感性负载实验.该发生器在输入2 kJ的初始能量条件下,能在3 μH电感性负载上输出220 kA的电流,输出能量72 kJ,有效脉宽约21 μs,并将实验与计算结果进行了比较,验证了等效电路模型程序用于该类型发生器参数设计的实用性.【总页数】3页(P1734-1736)【作者】刘伟;孙奇志;刘正芬;池原;戴文峰【作者单位】中国工程物理研究院,流体物理研究所,四川,绵阳,621900;中国工程物理研究院,流体物理研究所,四川,绵阳,621900;中国工程物理研究院,流体物理研究所,四川,绵阳,621900;中国工程物理研究院,流体物理研究所,四川,绵阳,621900;中国工程物理研究院,流体物理研究所,四川,绵阳,621900【正文语种】中文【中图分类】TN245【相关文献】1.医用菲力普SL75—20加速器高能X线和电子线输出剂量与能量… [J], 窦绍宇;吴大可2.碳纤维阴极对输出脉宽及能量的影响 [J], 邓潘;刘列;文建春3.输出能量20kJ,脉宽10μs的爆磁压缩电流发生器实验研究 [J], 孙奇志;龚兴根;谢卫平;刘正芬;戴文峰;池原;付嵩4.铝氧比对CL-20基含铝炸药水下能量输出结构的影响 [J], 孙晓乐;万力伦;杨琢钧;刘平;彭继武;刘海伦5.黑石公司利用3D打印固态电池成本节省70%、能量密度提升20% [J],因版权原因,仅展示原文概要,查看原文内容请购买。

MFC模态对话框和非模态对话框

MFC模态对话框和非模态对话框

MFC模态对话框和非模态对话框
.
分类: MFC2011-08-31 15:5425518人阅读评论(17)收藏举报
mfcdialogdelete编程
MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box)。
若和上面一样的方式创建一个非模态对话框:
[cpp] view plaincopy
01. CTestDialog td;
02.td.Create(IDD_DIALOG1); //创建一个非模态对话框
03.td.ShowWindow(SW_SHOWNORMAL); //显示非模态对话框
最后在所在类的析构函数中收回pTD所指向的内存:
(2)采用成员变量创建一个非模态对话框
首先在你所要编写的类的头文件中声明一个指针变量:
[cpp] view plaincopy
01.private:
02. CTestDialog *pTD;
然后再在相应的CPP文件,在你要创建对话框的位置添加如下代码:
那么,在运行时,你会发现此对话框无法显示。这是因为你声明的对话框变量td是局部变量,但这个函数返回时,td也被析构了,所以无法显示此对话框。
创建非模态对话框,必须声明一个指向CTestDialog类的指针变量,且需要显示的调用ShowWindow()才能将对话框显示出来。有两种创建方法:
[cpp] view plaincopy
01.//创建一个模态对话框
02.CTestDialog td;
03.td.DoModal();
其中CTestDialog为我自己所新建和一个对话框资源相关联的对话框类。

08机硬件介绍

08机硬件介绍

交换模块(SM)
• 交换模块(SM)具有独立交换功能,主要 用于实现模块内用户的呼叫及接续的全部 功能,并配合AM/CM完成模块间的交换功 能,提供分散数据库管理、呼叫处理、维 护操作等各种功能。 • SM在功能上独立于AM/CM,对外提供各种 接口,如用户线接口、中继线接口等,是 C&C08数字程控交换系统的核心部件之一。
交换模块(SM)的容量示意图
交换模块(SM)的其他特点1
• SM的控制结构采用二级分散控制的方法,一级控 制使用总线方式,由主处理机负责执行;二级控 制使用主从节点邮箱通讯方式,由各节点处理机 负责执行,主处理机还采用双机热备份的方法, 因此,大大提高了设备的可靠性和稳定性。 • 处理能力强 • SM可支持多种主处理机板(MPU),例如CB04 型MPU板,其CPU主频运行于200MHz,普通呼 叫BHCA值达200k。MPU板的内存标准配置为 64MB,可扩充至256MB,新业务新功能对用户 的开放比例达100%。
C&C08交换机机柜
• 机柜的主要作用是放置设备(包括单板、机框、 服务器等),并起到屏蔽、防护、防尘等作用。 C&C08的机柜从用途上来分主要有交换设备机柜、 BAM机柜和直流配电柜三种。 • (1) 交换设备机柜主要用于固定单板、机框、风扇、 工控机等设备。 • (2) BAM机柜中主要用于放置BAM服务器组件, 如服务器、逆变器等。 • (3) 直流配电柜主要用于-48V直流电源的分配和地 线的汇接,提供电源输入母排、电源输出端子以 及地线汇接母排等。
C&C08单板、机框、机柜的简要描述
• 本小节将对C&C08所使用的单板、机框、 机柜作简要的描述。
C&C08交换机单板
• 单板的功能特点 • C&C08的单板具有如下共同特点: • 大量采用ASIC、EPLD、FPGA等先进的集成电路, 单板的集成度高、工艺性好、可靠性高。 • 严格按照统一的硬件设计规范进行设计,大量继 承原有的成熟电路设计经验,单板升级简单。 • 支持热拔插功能。 • 单板内部自带WATCH DOG,在单板出现严重问 题时,能自动复位单板。 • 提供串口打印功能和复位开关。

MFC常见数据类型转换

MFC常见数据类型转换

MFC常见数据类型转换1.CTime--〉CStringCTime t;t=CTime::GetCurrentTime();CString sur;sur.Format("%s",t.Format("%Y-%m-%d"));MessageBox(sur);2.long --> CStringlong a ;CString b;b.format("%ld",a);3.double --->CStringdouble a;CString b;b.format("%f",a);4.CString--〉CTimeCString sur;sur="2006-08-09";COleDateTime time1;time1.ParseDateTime(sur);SYSTEMTIME systime;VariantTimeT oSystemTime(time1, &systime); CTime tm(systime);m_time=tm;UpdateData(false);5.CString和int,float之间的转换。

5.1 int <->CString1) int ->CStringint n = 1;str.Format("%d",n);2) CString->intCString str = "1";int n = atoi(str.GetBuffer(0));5.2 char* 与CString1)char*->CStringchar sz[128];CString str;str.Format("%s",sz);2) CString -> char*CString str;int nLength = str.GetLength();char* sz = new char[nLength];sz = str.GetBuffer(0);5.3 float<->CString1)float->CStringfloat f = 0.0;CString str;str.Format("%f",f);2) CString->floatCString str = "0.0";float f = atof(str.GetBuffer(0));Format函数第一个参数是要转的那个数的类型我现在的程序是int a = 21;double b = 3.45;str.Format("%03d%02.4f" , a , b);现在得到的结果是"0213.4500"%02.4f对b的整数部分不起作用我想要得到一个形如aaabb.bbbb的字符串("02103.4500"),如果a不足3位,用0补齐,如果b的整数和小数不足2位和4位也要用0补齐CString::Format("%d",xx);其中xx不能为双精度,不然会转化错误,应该使用CString::Format("%d",(LONG)xx);例:DOUBLE d = 22.443;CString str;str.Format("%d", d);转化后的str = "1924145349",这是错误的!1、CString to char*经过类型强制转换,可以将CString类型转换成char*,例如:CString cStr = "Hello,world!"; char* zStr = (char*)(LPCTSTR)cStr;2、char* to CStringchar*类型可以直接给CString,完成自动转换,例如: char* zStr = "Hello,world!"; CString cStr = zStr;3、CString to LPCSTR将CString转换成LPCSTR,需要获得CString的长度,例如:CString cStr = _T("Hello,world!"); int nLen = cStr.GetLength();LPCSTR lpszBuf = cStr.GetBuffer(nLen);4、CString to LPSTR这个和第3个技巧是一样的,例如:CString cStr = _T("Hello,world!"); int nLen = str.GetLength();LPSTR lpszBuf = str.GetBuffer(nLen);5、Char[] to int将字符串类型转换成整数型,可以使用atoi函数,例如:char c[10];int n; n = atoi?;6、Char[] to float和第5个技巧一样,使用atof()函数可以转换成float型,例如:char c[10]; float f; f = atof?;7、Char* to int和第5个技巧完全一样,例如: char *str = "100"; int i;i = atoi(str);一、其它数据类型转换为字符串短整型(int)itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制itoa(i,temp,2); ///按二进制方式转换长整型(long) ltoa(l,temp,10);二、从其它包含字符串的变量中获取指向该字符串的指针CString变量str = "2008北京奥运";buf = (LPSTR)(LPCTSTR)str; BSTR类型的_variant_t变量v1 = (_bstr_t)"程序员";buf = _com_util::ConvertBSTRT oString((_bstr_t)v1);三、字符串转换为其它数据类型 strcpy(temp,"123");短整型(int)i = atoi(temp); 长整型(long) l = atol(temp); 浮点(double) d = atof(temp);四、其它数据类型转换到CString使用CString的成员函数Format来转换,例如:整数(int)str.Format("%d",i); 浮点数(float)str.Format("%f",i);字符串指针(char *)等已经被CString构造函数支持的数据类型可以直接赋值 str = username;。

MFC组成

MFC组成

一、MFC组成质量流量控制器(Mass Flow Controller)是一种流量计与控制阀组的精密机电组合,与一般流量计最大的差别在于它是利用热感温差、非接触的方式测量气体的质量流速,不同于一般测量体积流速的方法,所以能够避免环境压力与气体体积的影响,非常适合用在动态的气体流量控制上。

MFC结构如下图所示:图2-1 MFC组成原理MFC由本体、等流器(Bypass)、传感器(Sensor)、控制电路板(Electronics)以及控制阀(Control Valve)等组成。

当气体进入MFC后,由传感器测出实际的流量,再与先前输入的设定值(Setpoint)比较,假若低于设定值,MFC内部的控制阀将适当的开启以增加流量;反之,控制阀则略为关闭减少流量。

这样,MFC 便可以自动调节制程所需气体流量。

1.本体由于制程中有许多工艺气体都具有腐蚀性,因此MFC中凡是与气体接触的部位都以抗腐蚀性强的SS316L,Hasteloy C-22等为材质,作为MFC的本体。

由于半导体工艺对反应气体的纯度,洁净度都有很高的要求,因此Semi对MFC内表面的光洁度有很高的要求(小于10uin Ra)。

所以一般的MFC内表面都作电解抛光等处理。

2.等流器分流器位于本体主要流道内,当气体进入MFC内,大约90%以上的气体将流经等流器后汇集进入控制阀入口,而其余小部分气体则将进入流量计的感测器管路内。

等流器的设计要满足三个要求:一是,必须使感测管路的进出口所产生的压力差、与气体的流量成正比,二是为了确保在不同温度、不同压力、流量以及不同气体使用下,必须能使感测管路内的气体流量与总流量的比值呈稳定状态;三是进入MFC的气体由0到全流量都要保持在层流状态。

3.传感器由于MFC本身的准确度要求很高,所以传感器元件的准确性相对非常重要,传感器感测原理后面详细介绍。

4.控制电路板由于MFC是根据感测管内流动气体的热移量,侦检流量质量,然后传回信号,以精密控制气体流量。

MFC注册表操作详解

MFC注册表操作详解

Zaroty's BlogTuesday, July 16, 2075 【休假中】主页博客相册|个人档案 |好友查看文章MFC注册表操作详解2008/08/26 01:13出处:Zaroty's Blog前置知识:VC WIN-API MFC关键字:注册表CRegKey MFC昨天修改 Z-IEMONITOR V1.1 的时候,学到了一些东西,其中感觉有写出来的价值的就是MFC的注册表操作了。

由于贴上代码会使文章过长而不能发表,所以文章代码均以图片形式展现,代码实例讲解均出于 Z-IEMONITOR V1.1 里面的代码,大家可以点击链接下载源码方便查看。

下面我们对MFC的注册表操作进行一下解剖,我总结了一些MFC操作注册表,大致分3种方法:1)WIN-API这个是当然的了,MFC也是基于WIN-API的,所以我们直接在MFC里面应用WIN-API的注册表操作函数来对操作注册表,是没有一点问题的。

WIN-API的注册表操作大家可以去参考这3篇文章。

Registry Functions(注册表操作API)C语言注册表操作实例Win32_API注册表类的编制以及使用这3篇文章基本上概括了WIN-API注册表操作的一些方法和实例,大家看过之后应该就可以很顺利的利用API来顺利的操作注册表了。

2)用MFC提供的 CRegKey 类既然我们是用MFC框架来写程序,那么用MFC封装好的一些类来操作注册表也就理所当然了。

CRegKey类的详细介绍(方法、成员)大家可以点击下面链接查看:CRegKey Class(MFC 注册表操作)这里我们要注意的是,当我们使用MFC提供的这个类的时候,我们要首先在你的头文件(.h)或者是源文件(.cpp)里面包含atlbase.h,也就是添加上一句:#include <atlbase.h>下面是我在 Z-IEMONITOR 里面添加了#include <atlbase.h>的地方(.h),大家可以参考下:下面我们要做的就是建立一个CRegKey类的成员,来调用CRegKey里面的函数,下面是 Z-IEMONITOR 里面设置开机启动的相关代码:我们这里是建立了一个SetReg成员,然后通过SetReg.Open()和SetReg.SetValue ()来打开和设置相应的键值,最后我们调用SetReg.Close()来释放句柄。

MFC中日期字符串的转换

MFC中日期字符串的转换

MFC中⽇期字符串的转换⼀、将字符串2011-08-1800:00:00转换为字符串2011-8-18,通过以下的函数CString DataDeleteZero(CString DATA){CStringstrmonth,strday,stryear;intyear=0,month=0,day=0;year=atoi(DATA.Mid(0,4));month=atoi(DATA.Mid(5,2));day=atoi(DATA.Mid(8,2));if(month<10)month=atoi(DATA.Mid(6,2));if(day<10)day=atoi(DATA.Mid(9,2));stryear.Format("%d",year);strmonth.Format("%d",month);strday.Format("%d",day);DATA=stryear+"-"+strmonth+"-"+strday;returnDATA;}⼆、MFC获得⽇期控件时间的cstring格式变量定义:CString strDate;COleDateTime ole_time;CTime c_time;1、CString转换为COleDateTimestrDate = "2009-4-25 12:30:29";ole_time.ParseDateTime(strDate);2、COleDateTime转换为CStringstrDate = ole_time.Format("%Y-%m-%d %H:%M:%S");3、COleDateTime转换为CTimeSYSTEMTIME sys_time;ole_time.GetAsSystemTime(sys_time);c_time = CTime(sys_time);4、CTime转换为COleDateTimeSYSTEMTIME sys_time;c_time.GetAsSystemTime(sys_time);ole_time = COleDateTime(sys_time);5、CTime转换为CStringCTime Time;Time.Format(“%Y-%m-%d”);得到的是2011-08-18格式的字符串时间Time.Format(“%y-%m-%d”);得到的是11-08-18格式的字符串时间,年份和上⾯不⼀样了Time.Format(“%Y-%#m-%#d”);得到的是2011-8-18格式的字符串时间,可以把⽉份与⽇的“0”去掉Time.Format("%Y-%m-%d %H:%M:%S");得到的是2011-8-18 00:00:00格式的字符串时间。

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

第8章MFC基础知识8.1 MFC概述MFC是用来编写Windows应用程序的C++类集,该类集以层次结构组织起来,其中封装了大部分Windows API函数和Windows控件,它所包含的功能涉及到整个Windows操作系统。

MFC不仅为用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件。

是用来编写Windows 应用程序的C++类集以层次结构组织封装了大部分API函数提供了图形环境下应用程序的框架提供了创建应用程序的组件提供了大量的基类供程序员根据不同的应用环境进行扩充允许在编程过程中自定义和扩展应用程序中的类较好的移植性,可移植于众多的平台MFCMFC还很好地保持了程序的向下兼容性应用程序中非图形部分的类MFC1.0 & MS C/C++7.0GUI功能的Windows相关类MFC2.0 & MS VC++1.0在1.0基础上增添了一些应用程序MFC2.0 & MS VC++1.5添加了ODBC类,并且还支持OLE的性能MFC3.0 & VC++2.0增添了对开发32位应用程序的支持MFC4.0包含了在Win95和NT中大多数新的公共控件和DAO、MAPI 增强了对数据库应用程序的支持利用DAO类通过编程语言来访问、操纵和管理数据库MFC4.21对Internet也提供了强有力的支持MFC5.0增强了对数据库和Internet的支持,可使用ODBC类和ODBC驱动程序来访问提供ODBC支持的数据库中的数据;可以通过数据访问对象(DAO)类通过编程语言来访问和操纵数据库中的数据并管理数据库、数据库对象与结构。

这些支持主要包括以下几个部分:•Win32 Internet API使Internet成为应用程序的一部分并简化了对Internet服务的访问•Activex文档可以显示在整个Web浏览器或OLE容器的整个客户窗口中•Activex控件可以用在Internet和桌面应用程序中可以使用CHttpServer、CHttpFilter、ChttpServerContext和CHttpFilterContext类来建立动态DLL,以便为Web页面增添功能MFC6.0中引进了新的功能:•提出了活动文档容器来管理不同类型的文档,并通过引入类COleDocObjectItem来加以实现。

同时在应用程序向导中也加入了对这一新特性的支持。

•加入了对动态HTML技术的支持,通过引入一个新类CHtmlView,使程序员开发的应用程序可以浏览并显示用动态HTML技术开发的HTML文档。

类CHtmlView中封装了许多浏览器的特征,包括浏览器在历史记录、书签和安全等方面的特征都被封装进了类CHtmlView。

•扩展了对公共控件的支持,如时间控键、IP地址控键和日期控键等。

8.2 MFC类的组织结构及主要的类的简介8.2.1 MFC类的组织结构MFC库中的类按层次关系划分类:(1)根类:CObject(2)应用程序体系结构类(3)窗口、对话框和控件类(4)绘图和打印类(5)简单数据类型类(6)数组、列表和映射类(7)文件和数据库类(8)Internet和网络工作类(9)OLE类(10)调试和异常类8.2.2 根类--CObject MFC 中多数类和用户自定义子类的根类,是抽象基类。

它提供了许多编程所需的公共操作。

对象的建立对象的删除运行时信息对象诊断输出串行化支持应用程序和线程支持类命令相关类文档类文档模板类视类(体系结构)框架窗口(体系结构)应用程序体系结构类窗口、对话框架窗口类(窗口)视类(窗口)绘图和打印类输出(设备相关)类绘图工具类简单数据类型类数组类文件和数据库类文件I/O类DAO类ODBC 类Internet和网络工作类ISAPI类Windows Socket类Win32 Internet类OLE类OLE容器类OLE服务器类OLE拖放和数据传输类OLE普通对话框类OLE动画类OLE动画类OLE控件类活动文档类其他文档类调试和异常类调试支持类异常类8.2.3应用程序体系结构类1.命令相关类:CCmdTarget 类该类是CObject 的子类,它是MFC 库中所有具有消息映射属性的基类。

消息映射规定了当一对象接收到消息命令时,应调用哪一个函数对该消息进行处理应用程序体系结构类1.命令相关类2.窗口应用程序类3.文档/视类4.线程基类编写程序的任务是填充框架,添加应用程序专用的功能用于构造应用程序框架的结构,提供多数应用程序公用的功能2.线程基类:CWinThread 类所有线程的基类,可直接使用。

CWinApp 类就是从3.窗口应用程序类:CWinApp类每个应用程序有且只有一个应用程序对象,在运行程序中该对象与其它对象相互协调,该对象从CWinApp类中派生出来。

CWinApp类封装了初始化、运行、终止应用程序的代码。

4.文档/视类文档对象由文档模板对象创建,管理应用程序的数据。

视对象表示一个窗口的客户区,显示文档数据并允许用户与之交互在CWinApp中定义的部分函数的功能有时也可以通过MFC提供的全局函数来实现,这些全局函数一般都以Afx为前缀。

例如调用AfxMessageBox函数将弹出一个消息框,其功能与CWinApp中的DoMessageBox相同。

AfxMessageBox原型如下:int AfxMessageBox( LPCTSTR lpszText,UINT nType = MB_OK,UINT nIDHelp = 0)8.2.4 可视对象类2.视类:CView 类该类表示框架窗口的客户区和显示文档数据并接收输入的客户区,其派生类主要有如下几种:●CScrollView :具有滚动功能的视的基类●CFormView :其布局在对话资源中定义的滚动视●CEditView :具有文本编辑、查找、替换和滚动功能的视1.窗口类:CWnd 类CWnd 提供了MFC 中所有窗口类的基本功能,是CCmdTarget 类的子类创建Windows 窗口要分两步进行引入构造函数,构造一个CWnd 对象调用Create 建立Windows 窗口,并将它连到CWnd 对象上3.菜单类:CMenu类该类是CObject类的子类,用于管理菜单。

它是一个Windows HMenu的封装,提供了与窗口有关的菜单资源建立、修改、跟踪及删除的成员函数。

4.对话框类:CDialog类由于对话框是一个特殊的窗口,所以该类是从CWnd类中派生出来的。

对话框子层次结构包括通用对话框类CDialog以及支持文件选择、颜色选择、字体选择、打印、替换文本的公共对话框子类。

5.控件类控件子层次结构包括若干类,使用这些类可建立静态文本、命令按钮、位图按钮、列表框、组合框、滚动条、编辑框等。

这些直观控件为Windows应用程序提供了各种输入和显示界面。

6.控件条类:CControlBar类控件条子层次结构为工具条、状态条、对话条和分割窗口建立模型。

该类是CToolBar、CStatusBar、CDialogBar的基类,负责管理工具条、状态条、对话条的一些成员函数。

控件条指的是连接在主窗口框架的顶部或底部的小窗口7.绘画对象类:CGdiObject类图形绘画对象子层次结构以CGdiObject类为根类,可用于建立绘画对象模型,如画笔、刷子、字体、位图、调色板等。

8.设备描述表类:CDC类该类及其子类支持设备描述表对象,是CObject类的子类。

CDC类是一个较大的类,包括许多成员函数,如映射函数、绘画工具函数、区域函数等,通过CDC对象的成员函数可以完成所有的绘画工作8.2.5 通用类此类提供了许多通用服务,例如文件I/O、诊断和异常处理等,此外还包括如数组和列表等存放数据集的类1.文件类:CFile类和CArchive类用以编写输入输出处理函数2.异常类:CException类是所有异常情况的基类。

不能直接建立CException对象,只能建立派生类的对象,用派生类来捕获指定的异常情况3.模板收集类这些类可以将多种对象存放到数组、列表和“映射”中。

但这些收集类是模板,它们的参数确定了存放在集合中的对象类型。

CException的派生类如下。

•CNotSupportedException:不支持服务异常•CMemoryException:内存异常•CFileException:文件异常•CResourceException:资源异常•COleException:OLE异常•CArchiveException:档案异常•CDaoException:基于DAO的数据库类异常•CDBException:数据库类异常•CUserException:终端用户操作异常产生异常的原因描述将储存在异常对象的m_cause数据成员中。

例如CArchiveException 类的m_cause数据成员的可能值如下:•badClass:不能读错误对象类型中的内容•badIndex:无效文件格式•badSchema:无效对象版本•endOfFile:到达文件尾•Generic:不明异常•None:无异常•readOnly:试图向只读文件进行写操作•writeOnly:试图向只写文件进行读操作8.2.6 OLE类对象连接与嵌入子层次结构为支持OLE 提供了9个类普通类COleDocuemntCOleItemCOleException客户类COleClientDocCOleClientItem服务器类COleServerCOleTemplateCOleServerDocCOleServerItemMFC中提供了对OLE技术体系的全方位的支持。

它提供了OLE基类、可视编辑容器类、可视编辑服务器类、数据传送类、OLE对话类和杂项类等六种类来封装OLE技术。

8.2.7 ODBC数据库类数据库类CDatabase:封装对数据源的连接,通过此连接应用程序可在该数据源上进行操作CRecordset:封装了从数据源选出的记录这些类面向ODBC且封装了ODBC APICRecordView :由CFormView 派生,该类将记录集对象连接到显示当前记录的字段值的一个表单视图来简化操作。

CFieldExchange :提供上下文信息,支持在字段数据成员、记录对象的参数数据成员及数据源上的对应列表之间进行数据交换CLongBinary :封装一存储句柄,用于存储二进制的对象,例如位图等CDBException :记录数据存取处理过程中的失败产生的异常常见数据库类8.3MFC 中全局函数和全局变量以Afx为前缀的函数(数据库类函数和DDX函数除外)和变量,在目前的版本中,都表示全局函数或全局变量。

相关文档
最新文档