这是一个最基本的Windows应用程序框架,先看一下项目文件截图:
应用程序由以下几个文件和类构成:
1、程序主入口,比如我们当前的项目为Test2项目,则程序的主入口文件就是Test2.cpp;
2、三个基础类 CCan、CAMain、CGuiMain,CCan类用于保存应用于全局的变量和函数,CAMain用于主程序和消息循环,CGuiMain用于界面的编排;
3、H.h 和 H.cpp 用于全局的变量和头文件包含,这个功能跟CCan有点重复,CCan类后续将会慢慢废除,全部用 H.h 和 H.cpp 代替。
先看一下程序编译后的结果
下面详细说明下这几个文件的详细内容:
1、程序主入口 Test2.cpp
这个主入口主要都是基本的VC++的框架,不同的就是创建窗口之前先调用我们自己的 main.PreWindow() 和创建窗口之后调用 main.AfterWindow(),以及将消息循环引入到我们自己的 main.Msg( hwnd, msg, wParam, lParam ),这样的话,程序的主要处理就可以在CAMain这个类中完成了,main的定义就是 CAMain main。
windows是一个基于消息响应的操作系统,也就是当没有消息要处理的时候,程序就空闲着,当有消息需要处理的时候,就会通过消息的获取、转换、分发并最终在main.Msg( hwnd, msg, wParam, lParam )中处理。
如果需要修改窗口的标题,把 g_hwnd = CreateWindow(ClassName, "biaoti", iWs_OverlappedWindow,iCw_UsedDefault, 0, 600, 300, iNull, iNull, hInstance, iNull) 这句中的 "biaoti" 换成你要的名称就可以了。
2、CAMain类,我们程序的主要处理都是从这个类中分出来的,先看一下类的声明:
类的实现:
具体的在源码中已有详细描述,这里主要要说的是iResultCAMain::Msg(iHWnd hwnd, iuint msg, iwParam wParam, ilParam lParam )这个函数,应用程序的主要处理都是在这个消息响应函数中,包括鼠标的按下、双击、滚动、界面的显示、控件的消息响应等等。
3、CCan类,主要用于存放应用于全局的参数和函数。类的声明为:
实现文件为:
这个类比较简单,基本没什么好说的,主要就是用于保存一些后面可能会用到的全局的参数变量和函数。在 voidCAMain::AfterWindow() 在调用 g_can.Create() 。
4、CGuiMain类,用于界面上各种控件的建立和排版,这个类也比较简单,看下他的声明和实现:
在我们这个测试程序中,创建了一个静态控件、一个编辑控件、一个按钮控件,后面的章节中在详细讲解各种控件的创建和消息处理。
5、H.h 和 H.cpp 全局变量的声明和实现,比较简单,所以将声明文件和实现文件放在一起截图:
主要实现了全局参数类CCan g_can等。
这样我们一个完整的常用windows开发框架就介绍完成了。如果需要获取本项目文件,可从
http://www.longmaz.com/public/index.php/home/goods/index/goods_id/874.html 上获取