品寒绝顶 雪舞人间

Home 

OWL应用程序框架

基于OWL的WINDOWS应用程序的主函数是int OwlMain(int argc, char ** argv);而不是传统的WinMain(),类似于DOS应用程序,较为简洁。

一个OWL应用程序就是一个TApplication类的实例,所以最简单的OWL程序如下:

//---------------------------------------------------------------------
int OwlMain(int argc, char **argv)
{return TApplication().Run();}
//---------------------------------------------------------------------

这样一个程序的启动过程分成以下几步,逻辑上是很自然的:

  1. Windows系统调入该程序
  2. Windows系统找到并调用程序中的WinMain函数(封装在OWL库中)
  3. WinMain函数调用OwlMain
  4. OwlMain生成一个TApplication对象。
  5. 生成的TApplication对象的构造函数运行
  6. :InitApplication成员函数运行(仅该类的第一个实例,以后的实例将忽略之)
  7. InitInstance成员函数运行,用以进行每个实例的初始化工作。
  8. InitMainWindow成员函数运行,用以设定主窗口。
  9. 进入主窗口消息响应循环,即第8步中所指定的主窗口的窗口函数生效
  10. 至此启动过程结束,程序开始运转并完成其功能。

以上过程中的各函数都有默认值,在实际应用中可根据需要覆盖相应的函数。通常我们都会覆盖其中的InitMainWindows函数,将一个TMyMainWindow类的对象指定为主窗口,并在TMyMainWindows中响应一些消息以实现各种功能。


Tips:

  1. 三维界面控制:
    Application.EnableBWCC(Bool);//Borland 3D
    Application.EnableCtl3d(Bool);//MicroSoft 3D
  2. 窗口的控制:
    在窗口的Constructor中,HWnd无效,此时可控制该种窗口不可改变的参数,
    在窗口的SetupWindow中,HWnd有效,此时可进行该种窗口的用户化设定,
    因此,修改窗体属性应该在Constructor中修改Attr.Style