这是一个最基本的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的定义就是CAMainmain。
windows是一个基于消息响应的操作系统,也就是当没有消息要处理的时候,程序就空闲着,当有消息需要处理的时候,就会通过消息的获取、转换、分发并最终在main.Msg(hwnd,msg,wParam,lParam)中处理。
如果需要修改窗口的标题,把g_hwnd=CreateWindow(ClassName,"biaoti",iWs_OverlappedWindow,iCw_UsedDefault,0,,,iNull,iNull,hInstance,iNull)这句中的"biaoti"换成你要的名称就可以了。
2、CAMain类,我们程序的主要处理都是从这个类中分出来的,先看一下类的声明:
类的实现:
具体的在源码中已有详细描述,这里主要要说的是iResultCAMain::Msg(iHWndhwnd,iuintmsg,iwParamwParam,ilParamlParam)这个函数,应用程序的主要处理都是在这个消息响应函数中,包括鼠标的按下、双击、滚动、界面的显示、控件的消息响应等等。
3、CCan类,主要用于存放应用于全局的参数和函数。类的声明为:
实现文件为:
这个类比较简单,基本没什么好说的,主要就是用于保存一些后面可能会用到的全局的参数变量和函数。在voidCAMain::AfterWindow()在调用g_can.Create()。
4、CGuiMain类,用于界面上各种控件的建立和排版,这个类也比较简单,看下他的声明和实现:
在我们这个测试程序中,创建了一个静态控件、一个编辑控件、一个按钮控件,后面的章节中在详细讲解各种控件的创建和消息处理。
5、H.h和H.cpp全局变量的声明和实现,比较简单,所以将声明文件和实现文件放在一起截图:
主要实现了全局参数类CCang_can等。
这样我们一个完整的常用windows开发框架就介绍完成了。如果需要获取本项目文件,可从