在VC 60中利用CSocket类和Access2000数据库开发网络监控系统.doc_第1页
在VC 60中利用CSocket类和Access2000数据库开发网络监控系统.doc_第2页
在VC 60中利用CSocket类和Access2000数据库开发网络监控系统.doc_第3页
在VC 60中利用CSocket类和Access2000数据库开发网络监控系统.doc_第4页
在VC 60中利用CSocket类和Access2000数据库开发网络监控系统.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文由风化的海贡献 pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 维普资讯 0 卷 月 0 第24 年6 期 2 7 第3 沈 gI tu f r ata E Junl f h na阳航空工业学院学报 l nier g ora o S eyn stt o e nui gne n ni e A o c i Vo _ 4 No 3 I2 . Jn2 0 u .0 7 文章 编号:0 718 (0 7 0 0 3 0 10 35 20 )3 0 6 6 在V C+ + . 6 0中利 用 C okt 和 A cs 00数 据 Sce类 ces 0 2 库 开 发 网络监 控 系统 谷庆华 李 成贵 10 8 ) 00 3 ( 北京航空航天大学 仪器科学与光电工程学院 , 北京 摘 要: V 在 C+ . 6 0环境下 , 有效利用 C okt , Sce类 开发 了基于 T P协议客户机/ C 服务器模式 网 络实时监控系统 , 客户端将采集的数据 通过 网络发送 给远方 的服务 器端 , 以实 现远程监控 .服务 器端 以数字和动态曲线方式 实时显示接 收到 的数 据 , 将数据存 储在 A es0 0数 据库 中.系 并 e s 0 2 统数据库模块采用标 准的 S L结构化查 询语 言 , 用 O B Q 选 D C数据 库访 问技术 , 存储 速度快 , 内存 消耗少 ; 监测 曲线模块设计过程中采用先在 内存 中绘 图, 然后复 制到显示设 备环境 中 , 利用背 并 景作为坐标 网格 , 通过 图形移动的方式 , 每次 只需画 出最后 一个 点 , 效的提高 了图形 的显示速 有 度. 关键词 : Sce; C+; 户机/ C oktV 客 服务器模式 ; 数据 库 ; D C O B 中图分类号 :P 9 .4 T 33 0 文献标识码 : A 随着 It nt 快 速 发 展 , 何 快 捷 有 效 的 ne e 的 r 如 开发 网 络应 用通 信 程序是 软件 开发人 员所关 心 的 问题 .在 Vsa C+ + 环 境下 采用 C ce类 和 i l u o s kt A cs20 ces00数 据库 开 发 客 户 杌/服务 器 模 式 网络 实时监 控 系统 , 客户 端 采 集 的数 据 通过 网络 发 将 送 给远 方 的服务 器端 , 以实现远程 监控 , 服务器 端 以数 字 和动态 曲线 方 式 实 时 显示 接 收到 的数据 , 并 采用 S L语 言将 数 据 存 储 在 A cs 00数据 Q ces 0 2 库 中, 以方便 查询 和后续 处理 . Wi c P 的 函数进行封装 , n k I o S A 大大 降低 了编程 工 作量 , 而且两 个类 中都 提供 了事 件处理 函数 , 通 过 对事 件处理 函 数进 行 重 载 , 户 可 方便 的对 套 用 接字发送 , 接收数据事件等进行处理 . C sn S ce 类 封 装 了 Widw oktA I A yc ok t n o sS c e P 函数 ,提供 了较低层 的 与 Widw ce 对 话 接 no sS kt o 口, 一般适 合于 有相 当水平 的 网络编程 者 , 可方 便 的进行底层 网络事件通知及 消息 回叫控制 等操 作. C okt Sce 派生于 C snSce, 继 承 了父类 A yc kt它 o 中一些 常用 易懂 的 Wi o sSce P 函数 , n w okt A I d s 并 对 C snsce 中底层 的较难 控 制 的一 些 A I A yc kt o P 函 数 或成 员 函数 进 行封 装 , 以通过 MF A ci 可 CC rhv e 对 象进行 信息 的 接发 操 作 , 得 的 网 络传 输 如 同 使 使用 MF C的文档连 接协 议 , 洁宜用 . 同时它 支 简 持模 块化 的后 台信 息 处 理 , 解决 了较 难 克 服 的多 线程 处理 .直接 利用 C ce 进 行 网络通 信 编 程 o S kt 有两 种方式 : 一是 利 用 C ceFl 和 C rhv o s kti e类 Aci e 类 实 现 ; 是 采 用 C ce 的 成 员 函 数 R ci , 二 o S kt ee e v S n ,R c , e d o eevFo e d ev S n T ,R ci rm,Ls n和 A . e ie t c l 套接字和 C okt Sce 类 在V C+ +中 , 利用 Wi c n k实现 网络 通信 主 o s 要有 以下 两种 方式 : ( )Wi okA I 1 n c P 函数来实现 S ( )利用 MF 2 C提供 的 Wisc 类 编程 n k o 直接采 用 Wisc P 函数来 编写 网络程 序 n kA I o 对 于 开发 者 要 求 比较 高 , 要 掌 握 较 多 的 wi. 需 n Sc P 函数调 用 格式 , 且 要 了解 网络 编 程 的 okA I 并 算法 , 于编 写 Widw 应用 程序来 说 , 涉及 复 对 no s 还 杂 的消息 驱动 机制 , 事件 处理 函数来处 理套 接字 , 接收数据等事件. 为 了简化 Wisc 程 , 用 户 专 注 于应 用 n k编 o 使 程 序算 法 的设 计 , F M C提 供 了 C snsce类 和 Ayc kt o C ce类 来 编程 .这两 个类 都在不 同程度 上对 o s kt 收 稿 日期 :0 70 20 11 2 cp 等来 实现 . et o kt Sce是 网络 编程 基 本 构 建 , 在 计 算 机 中 它 提 供 了一 个通 信端 口, 以通 过 这 个 端 口与任 何 可 一 个具 有 Sce 接 口的计 算 机 通 信 .应 用 程 序 okt 在 网络上传 输 , 收 的 信 息都 通 过 这 个 Sce 接 接 o kt 口来 实现 .在应 用 程 序 开发 中 , 像 使 用 文 件 句 就 作者简介 : 谷庆华( 9 0 ) 女 , 18 一 , 辽宁大连人 , 博士研究生 维普资讯 第 3期 谷庆华等 : V 在 C+60中利用 C okt . Sce 类和 A cs 0 0数据库开发 网络监控 系统 ces 0 2 3 7 柄一样 , 可以对 Sce句柄进行读写操作 .采用 okt Sce进行通信有两 种主要方式 : okt 一种 叫流方式 (t a sce) 也称 面 向连接 方式 .在 这种 方式 Sr m kt , e o 下, 两个通信 的应用程序之间要建立一种虚拟的 连 接 .其 过程 好 像 客 户 机在 给 服 务 器 打 电话 , 只 () 3 请求结束后 , 关闭通信通道并终止. 由此可 知 : ( ) 户 机 与 服 务 器 进 程 的作 用 是 非 对 称 1客 的, 因此编码 不 同 ; () 2 服务 进 程 一 般 是 先 于 客 户 请 求 而 启 动 的 .只要 系统 运行 , 该服 务进 程一 直存 在 , 到正 直 常 终止 或被 强迫终 止 . 有服务器拿起 了听筒 , 才有可能传输数据 , 这种方 式 对应 的 是 T P协 议 .第 二 种 叫作 数 据 报 文 方 C 式 ( a ga Sc )又 称无 连 接方 式 , 时 两 台计 D t rm k , a o 这 算机像是把数据放在一 封信里 , 通过 网络寄给对 方, 信在传送的过程中可能会残缺不全 , 而且后发 出的信可能会先收到, 它对应 的是 U P D 协议.流 方式 的特 点是 通 讯 可靠 , 对数 据 有 校 验 和重 法 机 制, 通常用来作数据文件的传输 , f ,e e等 , 如 t tnt p l 数据 报文 件 由于 取 消 了重 发 机 制 , 够 达 到较 高 能 的通讯 速 率 , 以用 作 一 些 对数 据 可 靠 性要 求 不 可 3 系统 的软件设计 3 1 网络通 信模块 . () 1 构造套接字对象 为客 户机 与服 务器 分别 创 建一 个基 于 Sce okt 类 的新 类 , Ci toktC evr ce, 后 分 别 C lnSce SreS kt然 e / o 构 造 客 户端 套 接 字 m Cin okt 服 务 器 端 l t ce 和 eS 套 接 字 m evrokt SreSce.代码 如下 : / /客 户机 的 主服 务类 ca s C l ns c e :p b i C c e l s C i t k t u l s k t e o c o 高的通讯 , 如实时的语音, 图像传送 , 广播消息等. 由于 系统 采用 的是 客户 服 务器 模式 , 为保 证数据的可靠 , 我们采用了基于流方式的套接字 编写程序. / 客户 机套接 字 / CCle t o ke Cle t o k t in S c tm in S c e 2 客户机/ 服务器 通信模式 在 TPI C /P网络应用 中, 信的两个进程相 通 互作用 的主要通信模式是客户机/ 服务器模式 , 即 客户 端 向服 务 器发 出请 求 , 务 器 接 收 到请 求 后 服 提供 相应 的 服 务 .客户 服 务 器 模式 在 操 作 过 程 中采取 的是 主动操 作 模式 . 首先 服务 器方 要 先 启 动 , 根 据请 求 提 供 相 并 应 的服务 : / 服 务器 的主服 务类 / c a s C e v r c e p b i C c e l s S r e s k t: u l s k t o c o / 服务 器套 接 字 / C e v r o k tm S r e S c e S r e S c e e v r o k t ( ) 建 wno s 2创 idw 套接 字 用 Cet ) r e 函数为套接字对象创建 Wi o s a( n w d 套 接字 ,ra ( 函数 会 调 用 Bn ( 函数将 此套 Cet ) e i ) d 接 字绑定 到指 定 的地址 .下 面代码 为服 务器 和客 户 机分别 创 建套 接 字 , 意 在 为服 务 器 创 建套 接 注 字 时要 为其 指定端 口号 . / 为服务 器创建 套接 字 , / 指定端 口号 mS reSc e. ra ( P r ; e rok tCe t n ot v e ) () 1 打开一通信通道, 并告知本地主机 , 它愿 意在某 个公 认 的 地址 端 口上 接 受客 户 的请 求 , 或 者 由开发人 员 自己指 定 端 口地 址 , 时端 口地 址 此 应 大 于 12 B,一般不 超 过 5 0 B; 04 00 / 为客 户端 创建 套接 字 / m Cinsc e. rae ) l t k tC et( ; eo ( ) 待客 户请求 到 达端 口; 2等 () 3 接收到服务请求 时, 处理请求并发送应 答信号 .接收并发服务请求 , 需要激活一个新进 程 来处 理这 个 客户 请 求 , 不 需要 对其 它 请 求 作 并 出应答 .服 务完 成 后 , 闭此 新 进 程 与客 户 的通 关 ( )服 务器 开始 监 听 , 3 客户 向服 务 器请 求 连 接 服务器调用 套接 字对象 的 L t ( 成 员 函 ie ) sn 数, 来监 听客户 发来 的连接 请 求 , 面 的代码 是服 下 务 器开始 监 听客户 的连接 请求 : n e eS ce. ie ( ; l S r rok tLs n ) v t 信链路 , 并终止 ; ( ) 回第二步 , 4返 等待另外的客户请求 ; ( ) 闭服 务器 . 5关 客户方 : 对 于 客 户 机 来 说 , 建 了套 接 字后 调 用 Cn et 创 onc ( 函数 向服务 器发送 连 接 请 求 , 立 与服 务器 的 ) 建 () 1 打开一通信通道 , 并连接到服务器所在 连 接 .下 面 的代 码是 客 户进行 连接请 求 : 的 主机 的特 定 端 口; / sA d 与 oo 分别是服务器的 I 地址和端 口 /t d r pr r t P () 2 向服务 器发 出请 求 , 等待并 接 收应 答 ; 号 维普资讯 沈 阳航空工业学 院学报 第2 4卷 m Ci to ktC n ets A d ,n o ) l nS ce. o n c(t d r P a ; e r () 2 创建数 据源 在 控制 面板 中 , 打开 O B D C数 据源 , 选择 用户 D N选项 后单 击 加 钮 , 列 表 中选 取 Mi S 添 按 从 c sfA cs re 驱 动程 序 , 人数 据源 名 b re t cesD vr o i 输 i a , 成数据 源驱 动程序 的安装 和数 据 源 的配 置 o完 操作. ( )添 加对 O B 3 D C数据库 的支 持 在项 目s a . t f h文 件 中添 加 #nld ,完成 O B D C类 的加 人 . () 4 添加数 据库操 作成 员 在 主对话 框 中加 人 C a bs 类 成员 函数 m D t ae a () 4 服务器接收客户的连接请求 当服务器 监 听 到客 户 的连 接请 求 时 , 创建 一 个新的空套接字 , 并将其传送给 A cp( 函数以 cet) 接受客户的连接请求. C evrokt R cokt / 创建 空 的套 接字 SreSce m eSce; / mS re o ktA cp( eS ce) evr c e. ce tm R cok t S / /服务 器套 接字 接受连 接请 求 () 5 客户与服务器之间传送数据 调用 成员 函数 R cie ) ee ( 函数 和 Sn ( 函数 v ed ) 在客户与服务器之间传送数据.由于涉及到数据 库相关 操 作 , 在数据 库模 块 中进 行介绍 . ( ) 闭套 接字 6关 dtbs,C eode 类 成 员 函 数 m rcr aaae R crSt eod 服务器, 客户机若退出 , 调用成员函数 Coe l s ( 函数释放套接字描述符 , ) 关闭套接字. mSreSce. l e ) /关 闭服 务器套 接字 evroktCo ( ; / s m Ci toktCoe ) /关 闭 客户机套 接字 lnSce. ls( ; / e 3 2 数据 库模 块 . St 用于对数据库和记录集进行操作 . e, ( ) D C功 能 的加 人 5O B B T u ef0 4 Y EB fr12 ; i ti t n Re ; CS rng si ti t me,m sr tRXDd t a a; ie R t= m Ci t ce. ee e B f r 12 ; l nS k tR ci ( u e, 0 4) e o v 为了 方便 数 据 查 询 , 理 , 统 选 用 A 管 系 c cs 00作 为存储 数 据 的工 具 .V es 0 2 C提 供 了多 种 数 据库 访 问方 法 , O B ,A O,D O, L B 如 DC D A O ED 等 .O B 是 开 放 数 据 库 互 连 的 简 称 , Mi DC 是 coo 公 司开 发 的用 于远 程访 问数 据库 的统一 接 rsf t 口规范 , 目前 已成 为一 种 工 业 标 准 .使 用 O B DC / 获取接 收 的数 据 / i S C E E R R: = R t 1 = R t f O K T R O ( i eI0= i e) Ax sae o( 接 收失 败 ; f sgBx Me ) Reu ; tr n C iet= C ie : eC r nTm ( ; / 取 接 Tm Tm :G tur tie ) / 获 e 收数 据时 的时 间 s m . om t d %2 : d tG t o r ) t e F r a ( %2 : d %2 , e u ( , i . H tG t iue ) tG teo d ) ; . eM n t( , . e c n ( ) S 开发数据库应用程序 时, 用的是标准 的 O B 调 DC 函数 和 S L语句 , Q 数据 库 底层 操 作 由各 个数 据 库 的驱 动程序 完 成 , 因此 应 用 程序 有 很 好 的适 应 性 和 可移植 性 , 并且 具 备 同时 访 问多 种 数据 库 管 理 系 统 的能力 .另 外 , C为 O B MF D C提 供 了一 些关 键类 , 来 支 持 数 据 库 ( D t a ) 用 C a B s ,记 录 集 a e ( R crSt 和记 录 视 图 ( R crVe . A O C eo e) d C eo i d w) D 是 A t eD t O jc cv aa bet的缩 写 , 建 立 在 O E D i 是 L B 基 础上 的一 种独 立 于语 言 的数 据库 访 问接 口, 由 B friet = 0 / 加上数据结束位 u e c , / R ; m t e s +=(hr B fr / 将接收到的 sR t g r M ca ) u e; / 数据 加人 到文本 框 中 m s R t g+= 一 ( ; t eMs r T rn ) U dtD t( fl ; / p a a a e ) / 更新 文本 框 e a s 于采用 C M组件 , O 操作系统可以自动启动组件与 应 用程序 完 成指 定 的工 作 , 因而 无 需 对数据 源进 行特别的配置工作.但使用 A O访问数据库时 , D 操作语言 比较复杂 , 通常需对相应 的命令进行封 装, 因而 系统 选 用 O B D C访 问数 据 库 .服务 器 端 将接收到的数据及相应时间存人数据库中.主要 步 骤 如下 : () 1 建立 数 据库 手 工操 作在 A cs 00中创 建 数 据库 ba. ces 0 2 i o md , b 在其 中加 人 表 dt,表 的结 构为 i( a a d 自动 编 号 ) t e 文本 ) dt( ,m ( i ,a 数字 ) a . m t X a . o a( %c %C , u e sR D t F r t %c B f r0 , r a m B fr1 , u e ; u e B fr2 ) / 以下是数据库相关操作代码 / i !mdtbs.spn ) / 果 数据 库 没 有 f ( a aeIO e( )/ 如 a 打开 , 打开 数据库 则 i mdtbs . p n 一 ( ba ) / 打开 f ( a ae O e ( T i ) ; / a o 数 据源 ba. b i md o m rc rS t e o d e .m bs a e; pDa a a e = &m daa tb s t 维普资讯 第 3期 谷庆华 等 : V 在 C+ . 60中利用 C okt See 类和 A cs2 0 ces0 0数据库开发 网络监控系统 3 9 C tn t Q Sr gs S L; i r n dh n egt指 明 目标位 图和原位 图的宽 wit,H i : h / 添加 数据 / s S L F r a ( isr it ba t e d t) t Q . om t netn i r o o(i , aa m 度和高度. p rD 指 明要拷 贝 的位 图所 在 设 备 环 境 对 Sc C: 象 的指 针 . xr,Sc 指 明要拷 贝 的位 图从 哪个 坐 标 点 Scyr: vle %s % s t e msR D t) a s( , ,sm , u , i tXa ; r a m a b s.E eueQ (t Q ) d t ae xc t L s S L ; a S r m a bs. l e ) / 关闭数据库 dt a Co ( ; / a e s 客户端将前方采集到的数据通过 网络发送给 服务器端 , 主要代码如下 : i ti t n Re ; 开始拷 贝 . d R p 指明要执行的拷贝实行哪一种操作. w o: S C O Y为拷 贝原 位 图到 目标 位 图 . RCP ie =m Ci to kt Sn ( P T T Rt l nS c e. e d( L C S R)m e sr n tSe d,m 主要步骤和源代码如下 : () 1 在类 C i C aCr 头文件 中定义设 备 L ehr t n t l 环境类 C C对 象 m M mD ,用 于在 内 存 中绘 D e C 图 ,Bta 类对象 m i a , Ci p m Bt p 用于存放位 图. m ( ) 类 C ie hr t 2在 LnC at r 添 加 R g t d C l中 eir - sWn Cas ) l ( 函数 , 于 注 册 一 个 窗 口类 , 在 该 构 造 s 用 并 函数 中调用 R g t WnCas ) eie d l ( 注册 窗 1类 . sr s 3 B O Ln C a Cr: R g t Wn Cas ( H N O L C i h r t : ei e d ls e t l sr I s Sn . eLnt( ) / 发送 数据 t ed G tegh ) ; / r iSC E f O K TE R R= = R cl0= = R t ( R O i et l i e) Ax s gB x 送失 败 ; f s eo ( 发 Me a ) r un t t r ; ms S n . m t( ; t e d E py ) r S A C ls ne T N E hnt c ) a 4 监测 曲线绘制模块 系统使用 V C提供 的 C s m C n o 控件 , ut ot l o r 单 独编写 了 C i C a Cr类完成监控 曲线的绘制 L e hr t n t l 工作 .主要 使用 设备 环境 类 C C, 用 图形 设 备 D 调 接 口 G I G a hcD vc t fc ) D ( r i ei I e ae 的画 笔 , p enr 画刷 , 位图, 完成 图形的绘制工作 .具体方法是 : 先在内 存创建与显示设备 环境相兼容的内存设备环境 , 并且创建与显示设 备环境相兼容的位 图, 然后在 内存设备环境 ( 该兼 容位图 ) 中绘图.系统采用 图形移动方式绘图 , 首先利用 Bth函数复制存 i B 储 于 C C对 象 中 的位 图 , D 复制 后 目标 位 图宽 度和 高度与原位图相 同, 只是在最左边去掉 4 个像素 , 在最右边多出 4 像素, 个 这相 当于位 图从右 向左 移动 ( 次移动 4个像素 位置 ) 因此每 次画线 每 , 时, 只需要画出最右边的区域 , 实际上只画出一个 新点( 4个像素画一个点) 该点对应 串口接收 每 , 到的数据值.然后再 次调用 Bth ) i ( 函数 , 内 B 将 存设 备环 境 中 的位 图复制到 控件 窗 口中 .窗 口采 用黑色背景 , 用十字网状绿色画刷填充背景图, 使 界面更加美观 大方.方法 中使用 的关 键函数是 Bth ) i ( 函数 , B 函数 原形 如下 : Bth it ,it ,itn d i (n n Y n Wit n H i t B x h,i n eg , t h C DC p rD S c C, i t x r , i t y r , D ORD n S c n S c W WN C A Sw ; / D L S D L S e / WN C A S结 构 变 量 由 描 述 窗 口风格 的成员 函数组 成 w . s l s a e= L e hr t / 必须与 e1 z a N m p Cs C i C a Cr ; / n t l 绘制 曲线类 名相 同 we. l sa c = h n tnc h n tn e l sa e; we.p n n Pmc = : f ido r c; 1fW d De W n wP o w . C r r = : L aC r r N L ,I CA - e h us o : od us ( U L D o R R W ) / 设 置 鼠标 在 窗 口中的形状 O ;/ w .l n=0 / 设置窗 口图标 , ehc o ;/ 本程序不使用 , 赋 0值 we 1 s Me uNa .p z n me : NULL; w . bB c gon = ( B U H) : e t k b e h ra kru d H R S :G to O - Sc jt LC e (B A KB U H ) c RS ; /设 置 窗 口背 景为黑 色 / w .y es l t e=0 /设置 窗 1类 型, 程序未使用 , ;/ 3 本 赋 0值 w .b l x a=0 / 本程序未使用 , 0值 ecCs t Er ;/ 赋 w .b d xa=0 / 本程序未使用, 0 ecWn Et r ;/ 赋 值 / 调用函数 :R g t Cas ) / : eie l ( 注册窗 口类 , sr s 参数为 wN C A S结构 变量 的地址 DLs r u ( : eieCas & c e m :R gs r l ( w )! = 0 ; t t s ) () 3 在类 C i C a Cr Ln hr t e t l中添加 A d ) 数 , d( 函 d R p w o) 参数说 明: x Y 指明 目标位图左上角的坐标 . ,: 其参数 c o, pe 和 l e 分别指定 了曲线 的 o r U pr o r l w 颜色 , 上限值和下限值 , 完成监测曲线上下限的设 置和画笔颜色的设置, 代码如下 : 维普资讯 沈 阳航空工业学院学报 第2 4卷 B O Ln C att : A d (cl R F c l , O L C ie h r r : d Cl oR E or o o CRe tr Cl nt c c i ; e U N p e ,UN o e) I TU p r I T L w r mcl L e=cl ; / o ri o n o r / 设置画笔颜色 o m no e 1w r=Iw r / 设置监测曲线下限值 . e; / G tl nR c(c l n ) / 得 到 控 件 窗 口位 置 eCi t etrCi t ; / e e 和大小 I n m n pe U pr= U pr / 设置监测曲线上限值 p e; / no Ps=0 / 设置串口当前接收到的数据值 ;/ n d s =O; OlPo / 以下在设备环境 中拷贝位 图, / 高度宽度与 原 位图相 同 , 只是最右 边去 掉 4个 像素 点 m 为0 m Me D . i l( ,0 c l n. d ( ,r- m C Bt t 0 ,rCi tWit ) c B e h Ci t H i t ,& Me C l n. e h () m e g mD ,4,0,S C R C P ) OY ; CRe tr Rih = r Cle ; c c g t e int Ivl aet( ; / 始化 窗 口的背 景 , 码在 后 nadt r ) / 初 i Cl 代 面介绍 () 4 添加 Ivl a lt ( 函数 , 于初 始化 nai tCr ) de l 用 控 件窗 口背 景 , 序如 下 : 程 vi Ln C att :Ivl a Cr ) o C ie h r r : a d t t ( d Cl n i e l rR gt 1f = rRg t i h 一 4;/ 矩 形 c i . et h c i .f t h g / rRg t 原位 图最 右面 的区域 c ih 是 I n Me C Stk o r R B( 0, ) ; / mD . e C l ( G 0, 0 ) / 设 B o 置 目标 位 图背景 色为黑 色 C ms k rs H B h b Buh( SC O S G 0, 2 , R S ,R B( 18 C l nD c ti) Ci t C d (hs ; e CRe tr Cle ; c c int O ) ); m M m C Fl et rRg t& k ms ) e D . iR c(c ih, b B h ; l G tlnR c(c ln) / 得 到客 户 端 窗 口 eCi tetrCi t ; / e e 的位置 和大小 I n / 用绿 色 十字 网状 画刷 填充 目标 位 图最 右 面 区域 / C o n t d,p Ne P i t Ol p t w; UI NT Ra g = I n ne n n pr m Up e Me C C et o p t l C( d ) / mD . rae m ai e C b D & c ;/ no e; / L w r / 计 创建 与 d 兼 容 的 内存 d , c c / 创 建兼 容 位 图 , 小 与控 件相 同 / 大 I n 算 串 口接收 到的数据 的范围 pOd x = rRg t1 t : / 到原 位 图最 右 面 tl. c i .e 一1 / 得 h f Bt p Ce t o p t lBt p & c rCi i . ra C m ai e i ma e b ma ( d ,c l 点的 X 坐标值 pOd Y = (n ) ( ( ot ( R n e I Od tl. it ( ( f a) n a g l nn l P s )/ f a)n a g ) ( ot c i tH i t o) ( o t R ne l l f a)rRg . eg h h e tWit( , Ci tH ih( ) n. d ) r l n. e t ) ; h e e g I n Me C Sl tb c(nBt p ; / mD .e cO j tI e e i ) / 将 ma 位图选人 内存 中 I n M mD . eB C lr R B( , , ) ; / e C Stk o ( G 0 0 0 ) / o 设置 位 图背景颜 色 ()/ ) ; /根 据 比例计 算得 到 原 位 图最 右 面点 的 Y 坐 标值 pN w X = rRgtr h 一1 / 得 到新 点 ( 口 te . c i .i t ; / h g 串 接 收到 的数据 ) X坐标 值 的 pN w. = (n )( ( f a )( R n e I te Y i t ( ( ot n a g l n n o ) ( ot R n e P s )/ f a)n ag ) ( ot rRg tH i t l l f a)c i . eg h h C rs k rs ( SC O S R B( ,2 , B uhb Buh H R S , G 0 1 8 O ) /创 建 十字 网状绿 色画刷 ) ;/ m Me D . iR c (c l n , k rs ; m C Fl et rCi t &b B uh) l e / 用创 建 的画刷 填充 窗 口的背景 / () 5 添加 Sto ( 函数 , 串 口接 收 到 的 数 ePs ) 将 据 值传 给绘 制 曲线类 . U N Ln C att :Sto(U N P s I T C ie hr r :e s IT n o) Cl P ( ) / 根据 比例 计 算 得 到新 点 ( 口接 收 到 的 ) ;/ 串 数据 ) Y 标值 的 坐 C e e ( SS LD,1 I o rie ) / P np n P OI , nc l Ln ) ;/ 创 o 建实线画笔 CPe n pOl Pe d n = I n Me C e c bet mD .S l t jc eO n n l nno ; / I Od=I Ps / 把上一次 串 口接 收到 的/ 数据值给旧点 mn l / Od I n no Ps=n o;/ 把 串 口新 接 收 到 的 数 据 Ps / ( pn ; & e ) / 将 画笔选 进位 图 中 / m Me C M vT ( tl) / 绘 制 目标 位 图最 mD . oeo pOd ; / M m C LnT ( t e ; e D . ie o pN w) 值/ 给 mn o 变 量 / Ps () 6 添加 Da Ln ( 函数 , 于 绘 制监 控 曲 rw ie ) 用 右面 的部分 , 旧点 与新 点连 接起 来 将 m m Me C Sl tbetp lPn ; / 原 画笔 mD . e cO jc(Od e ) / 将 e 线, 主要代码如下 : v i C ie hr t :D a Ln ( o Ln C at r : rw ie ) d Cl 选 人 内存 中 Ivlae F L E ; / 新 窗 口 nai t( A S ) /刷 d 维普资讯 第 3期 谷庆华等 : V 在 C+ + . 60中利 用 C okt Sce 类和 A cs 0 0数据库开发 网络监控系统 ces 0 2 4 l 测 曲线 的绘 制工作 , 主要 代码 如下 : ( )当调 用 Ivlae ) 7 nai t( 函数 时 , d 向窗 口发送 m w d ie h r S to( titu) ; n Ln C at e s a (b f ) . P o P IT消息 , AN 请求重 画窗 口, 程序会 自动调 用 O Pit) n a ( 函数 , 实 现 的功 能是 将 存 储 在 内 n 其 WM / 监测 曲线类 中获 得 串 口接 收 到 的数 据 , 置 曲 / 设 线 当前 点 的 / 纵 坐标位 置 / m 存设 备 中 的位 图复 制 到控件 窗 口中 .程 序代码 如 下: w d ie h tD a Ln ( ; / 制 图形 n Ln C a . rw ie ) / 绘 l vi Ln C att :O P it ) o C ie h Cr : n a ( d l l n C a tCd( i ; / P i D c ts / 创建绘图 d n h) c CRe tr Cl n ; c c i t e 5 结 论 在设计一个基于分布式虚拟环境网络通信软 件过 程 中 , 用 面 向 对 象 的方 法 , V 采 在 C+ +6 0 . 环境 下 有效 利 用 C okt , 发 了基 于 T P协 S e类 开 c C 议服 务 器 和 客户 机 应 用 程 序 , 采 用 A cs 00 并 ces 0 2 G tlnR c(c ln) / 得 到客 户 端 绘 图 eCi tetrCi t ; / e e 区大小 和位置 / 以下将内存位 图复制到屏幕上 / d . i h 0 0, c l n. d ( , c l n. c Bt ( , rCi tWit ) rC i t B e h e H i t ) &mM mD , , , R C P ; e h( , g e C 0 0 S C O Y) 数据库作为存储数据 的工具 , 能够很好 的实现服 务器端与客户端 之间的数据信息的传输 和管理. 图形 处理 中采用 先 在 内存 中绘 图 , 然后 复 制 到显 示D C中 , 利用 背景 作 为坐标 网格 , 并 通过 图形 移 ( ) 后 在 主 对 话 框 中 加 入 曲 线 类 C ie 8最 Ln C att 及其 成员 变 量 mw d ie h t在 O hr r Cl nLnC a , l n Ii il ( 函数 中 , nt a g ) D o 添加 S bl slIm( 函数 , uc sDgt ) a e 动的方式 , 每次只需要画出最后一个点 , 有效地提 高 了图形 的显示 速度 . 参考 文献 : i a C+ . 1 Vs l u 60网络及 i e c 开发 指南 . nr t t a M 北京 : 清华 大 学 出 版 社 , 00:2 20 111 2 3 将窗 口控件与 C d Wn 对象相关联 , 代码如下 : m w d ie h tS b l s lI m( D n Ln C a . u c sDgt I CLN l a e I E w d i C atA d R B 0 2 5 0 ,0 0 ; n Ln h . d ( G ( ,5 , ) 10, ) e l C A T, i) H R ts ; h m /设置 曲线的颜色 , / 上限值和下限值 S blsDgt ) C d类 成 员 函 数 , u c slIm( 是 Wn a e 其 函数原 形如下 : B O u c sDgtm ( I T nD,C d p a- O LSbl s l e UN I a I Wn P l et n) 2 蒋东兴. n o s ok t网络程序设 计大全 . Wi w ce d S s M 北京 : 清华 大学出版社 .19 5 9 9:29 9 3 求是科技. i a C + Vs l + 数据库 通用模块及 典 型系统 开发实 u 例导航 北京 : 民邮电出版社. 0 6 2 3 2 7 M. 人 20 :1 5 4 杨国兴. i a C+ . 程 序设计教程 . Vs l u 60 M 北京 : 中国水利 水 电 出 版社 . 0 2 1719 2 0 :2 3 功能: 从对 话 框模板 创建 一个 动态 字类 , 并将 5 刘英华 . V 在 C+ . 6 0中利用 C okt Sce 类实现 双机通迅 J. 计算 机应用 ,0 12 ( )2 1 20 ,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论