- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FOR
SDK c/C++
基于UCDOS
开发包的程序设计
黄旭慧陈志杰
(田防科技大学计算中心 长沙410073)
腿】车文论述了在忱D∞SDK环境下开盅^青与lind啊s一蠹的叫l再面的应用所需的■程攥壹和步一.井
培出一十开越用的麦饲.
E美¨】ucD舔s眦爱序超计叫l船蓐界面清点■耳界面元蠢
一、引言
如柯使在DOS环境下开发的应用软件能够具有与Windows一致的图形用户界面
SDK
和一致的操作方法。是很多程序员都在不断追求的目标.UCDOSFORC/c++(以
下简称SDI【)是一个与设备无关的、包含了图形、图象、汉字以及图形用户界面的
程序开发工具包.它使得用户能快速省力地在UCI)OS中文平台下开发IX)S版的应
用,并能实现与Windows一致的GUI界面.
二、SDK的编程模型和步骤
SDK采用了与Windows类似的概念,如GUI图形界面及其操作方法的管理、程序
的事件驱动及内部消息循环控制机制、鼠标管理、扩展内存(XMS)管理等,其中,
程序的内部消息循环机制突破了传统直线型开发的模式,使程序实现中的问题得以
独立化、单纯化,也使DOS开发者的绽程习惯向Windows靠拢。
sDK为应用程序员提供了一个编写应用程序的具体模型,在此模型下开发的应
用程序都被构造成事件驱动的形式.一般的消息德环编程方法.都需要应用程序来
参与事件捎息的获得及判别,通过使用开关语句switch/case查看消息的类型,然
tch语旬变得很
后执杼某种操作.这样当窗口控村较多时,可能会使程序中的swi
长.且十分复杂.而在SI)K中,这个过程被臆藏起来.由SDi(内部自动实现.因此
使用S呱的程序员不用写很长的switch语句来处理程序逻辑,而只需要写几个函
数兢可以处理发生在每个界面元素(Widget)中的事件。这种方法使程序员可l;【
按一种更再说明性的风格来编写程序.从而大大简化了大多数应用程序的逻辑。这
就是SDK的编程模型.基于这一模型,使用SDK开发的大多敦应用程序具有类似的
风格.它们都要完成几个基本步曩.这些步骤是:
1、韧始化SDK;
2、定义界面元素(Widget).以构造程序的用户界面;
3、在定义界面元素时.注册相应的事件处理函数及所有界面元素的回调函数;事
件处理函数和回调函数是应用程序所定义的函数,它响应用户动作及出现在每个界
面元素中的事件;
4、显示已定义的由各种界面元素所组成的SDK窗口;
5、进入事件循环。大多数SDK应用程序是由事件驱动的。且事件循环是一个响应
事件的无限循环.循环内部自动监测各种内部事件及用户自定义事件的发生。并且
在事件发生后将事件转移给相应的回调函数处理.
三、SDK编程实例
下面给出一个使用SDK开发的应用实例.此实例选自笔者开发的一个计算机检
测系统,用以显示检测获得的试验数据曲线。本程序首先初始化SDK.然后定义各
种回调函数.其中程序在窗口中要显示的内容都在窗口重画回调函数中进行了描
述.在定义界面元素的过程中,建立了一个曲线显示窗口,并定义了一个退出按钮.
程序最后是应用主体,进入S1)K事件驱动循环.原程序中,显示曲线的过程较长,
且与本文主题无关,故在此省略.
FoR
6.0、ucD0ssDK C/C+*3.1、DOS6.22。
运行环境:ucDos C/C++、Borland
夏序清簟
H明1997.10.8
程序:DLXS3.C
功能:在窗口内显示试验数据曲线
ib.h
#includestdl
#include。sdk.h。
voidXSBegin(void):
void
XS—Widget(void)
void
XS_A
文档评论(0)