毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于TD-SCDMA的物理层集成测试工具的研究与实现(4)
一个WINDOWS程序分为程序代码和UI(User Interface 用户接口)资源两大部份,两部份最后以RC编译程序整合为一个完整的EXE文件。所谓UI资源是指功能菜单、对话框、程序图标、光标形状等等东西。这些UI资源的实际内容(二进制代码)系借助各种工具产生,并以各种扩展名存在,如 .ico .bmp .cur等等。程序员必须在一个所谓的资源描述档(.rc )中描述它们。RC编译器( RC.EXE )读取RC 文件的描述后将所有UI资源文件集中制作出一个.RES 文件,再与程序代码结合在一起,这才是一个完整的 Windows可执行文件。
与控制台程序相同的是,一个WIN32程序也必须有一个程序入口点,但是在这儿它不再叫main(),而叫做WinMain(),当WINDOWS的SHELL检测到用户欲执行一个EXE程序,就会调用加载器把程序进行加载,然后调用C startup code,后者再调用WinMain(),程序的执行就开始了,WinMain()函数的原型为:
int CALLBACK WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow);
图3-1 32位WINDOWS程序的开发流程
下面程序必须进行必要的初始化工作-产生窗口,第一步是注册一个窗口类:用API函数:RegisterClass(),而这个函数需要一个已经定义好的系统结构:WNDCLASS,这个结构里面定义了窗口的种种属性,需要自己定义,但是许多属性都有默认值。然后调用CreateWindow()函数来产生具有上述定义属性的已注册窗口,但是需要注意的是它只是生成窗口,但并不显示之,所以还需要调用一个函数ShowWindow()将它显示在屏幕上,做完这些初始化工作以后,系统将进入消息循环:
while (GetMessage(&msg, NULL, 0, 0)){
TranslateMessage(&msg);DispatchMessage(&msg);}
当消息循环捕捉到消息以后将交由窗口函数WndProc()窗口函数进行相应的处理。这样,一个基于消息事件驱动的WIN32程序的雏形就建立了起来。
1.3.3 MFC框架
微软基础类库(
英语
:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
MFC优点:MFC的主要优点是可以用面对对象的方法来调用Windows API,以及应用程序开发的便捷。MFC将很多应用程序中常用的功能
自动化
,并且提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。同时,在VC++内部也内建了很多对MFC的例如类向导这样的支持以减少软件开发时间,使用类向导可以生成从hello world这样的简单程序到活动文档服务器这样的复杂程序。MFC的消息映射机制也避免了使用性能较低的庞大虚函数表。
MFC缺点:虽然MFC的源代码对用户是完全开放的,但MFC的一些封装过程过于复杂,以至于新用户很难迅速掌握MFC的应用程序框架,以及在调试中定位问题的位置。同时,很多MFC对象不是线程安全的,致使在跨线程访问MFC对象时需要编写额外的代码。另外,MFC的很多类依赖于应用程序向导生成的代码,使得在使用Visual C++中其他类型的应用程序向导生成的工程中添加MFC支持的难度大大增加。
是VC开发环境的一个核心构件。MFC构架了一个庞大的类体系结构,在4.0时代就多达189个类,程序代码达252个文件,58个头文件,共10MB之多,MFC4.2时又多加了29个类,但是最为主干的是下面类结构示图所示的一些类:
CObject 是 MFC 类库的根类。
MFC 类库包括:
(1)CCmdTarget 类:是 CObject 类的子类,它是 MFC 库中所有具有消息映射属性的类的公共基类。它的子类有 CWinThread 类, CWnd 类、 CDocument 类,从 CCndTarget 类派生的类能在程序运行时动态创建对象,并处理命令消息。
共10页:
上一页
1
2
3
4
5
6
7
8
9
10
下一页
上一篇:
Matlab一维条形码的识别+文献综述
下一篇:
基于CORDIC算法的数控振荡器设计+文献综述
认知无线电网络中基于双...
基于TCP/IP技术的转向架振动测试系统设计
基于PM2.5浓度的健康出行路径规划及实现
基于涡旋电磁波的新型雷达成像技术研究
基于相关滤波器的长期跟踪算法研究
基于ZigBee协议轨道交通环...
变分模态分解方法研究及...
谷度酒庄消费者回访调查问卷表
中国古代秘书擅权的发展和恶变
国内外无刷直流电动机研究现状
浅谈传统人文精神茬大學...
高校网球场馆运营管理初探【1805字】
辩护律师的作证义务和保...
多元化刑事简易程序构建探讨【9365字】
《醉青春》导演作品阐述
浅谈新形势下妇产科护理...
拉力采集上位机软件开发任务书